![Lesson15多线程与聊天室程序创建_第1页](http://file4.renrendoc.com/view/4864a1cb08ab4544d20799ce83c79de4/4864a1cb08ab4544d20799ce83c79de41.gif)
![Lesson15多线程与聊天室程序创建_第2页](http://file4.renrendoc.com/view/4864a1cb08ab4544d20799ce83c79de4/4864a1cb08ab4544d20799ce83c79de42.gif)
![Lesson15多线程与聊天室程序创建_第3页](http://file4.renrendoc.com/view/4864a1cb08ab4544d20799ce83c79de4/4864a1cb08ab4544d20799ce83c79de43.gif)
![Lesson15多线程与聊天室程序创建_第4页](http://file4.renrendoc.com/view/4864a1cb08ab4544d20799ce83c79de4/4864a1cb08ab4544d20799ce83c79de44.gif)
![Lesson15多线程与聊天室程序创建_第5页](http://file4.renrendoc.com/view/4864a1cb08ab4544d20799ce83c79de4/4864a1cb08ab4544d20799ce83c79de45.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、多线程与聊天室程序的创建1程序、进程和线程程序和进程程序是计算机指令的集合,它以文件的形式存储在磁盘上。进程:通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动。进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源;而程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此,它不占用系统的运行资源。进程由两个部分组成:1、操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。2、地址空间。它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间。如线程堆栈和堆分配空间。2程序、进程和线程进程进
2、程是不活泼的。进程从来不执行任何东西,它只是线程的容器。若要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,此线程负责执行包含在进程的地址空间中的代码。单个进程可能包含若干个线程,这些线程都“同时” 执行进程地址空间中的代码。每个进程至少拥有一个线程,来执行进程的地址空间中的代码。当创建一个进程时,操作系统会自动创建这个进程的第一个线程,称为主线程。此后,该线程可以创建其他的线程。3程序、进程和线程进程地址空间系统赋予每个进程独立的虚拟地址空间。对于32位进程来说,这个地址空间是4GB。每个进程有它自己的私有地址空间。进程A可能有一个存放在它的地址空间中的数据结构,地址是0 x123
3、45678,而进程B则有一个完全不同的数据结构存放在它的地址空间中,地址是0 x12345678。当进程A中运行的线程访问地址为0 x12345678的内存时,这些线程访问的是进程A的数据结构。当进程B中运行的线程访问地址为0 x12345678的内存时,这些线程访问的是进程B的数据结构。进程A中运行的线程不能访问进程B的地址空间中的数据结构,反之亦然。4GB是虚拟的地址空间,只是内存地址的一个范围。在你能成功地访问数据而不会出现非法访问之前,必须赋予物理存储器,或者将物理存储器映射到各个部分的地址空间。4GB虚拟地址空间中,2GB是内核方式分区,供内核代码、设备驱动程序、设备I/O高速缓冲、
4、非页面内存池的分配和进程页面表等使用,而用户方式分区使用的地址空间约为2GB,这个分区是进程的私有地址空间所在的地方。一个进程不能读取、写入、或者以任何方式访问驻留在该分区中的另一个进程的数据。对于所有应用程序来说,该分区是维护进程的大部分数据的地方。4程序、进程和线程线程线程由两个部分组成:1、线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。2、线程堆栈,它用于维护线程在执行代码时需要的所有参数和局部变量。当创建线程时,系统创建一个线程内核对象。该线程内核对象不是线程本身,而是操作系统用来管理线程的较小的数据结构。可以将线程内核对象视为由关于线程的统
5、计信息组成的一个小型数据结构。 线程总是在某个进程环境中创建。系统从进程的地址空间中分配内存,供线程的堆栈使用。新线程运行的进程环境与创建线程的环境相同。因此,新线程可以访问进程的内核对象的所有句柄、进程中的所有内存和在这个相同的进程中的所有其他线程的堆栈。这使得单个进程中的多个线程确实能够非常容易地互相通信。 线程只有一个内核对象和一个堆栈,保留的记录很少,因此所需要的内存也很少。因为线程需要的开销比进程少,因此在编程中经常采用多线程来解决编程问题,而尽量避免创建新的进程。5程序、进程和线程线程运行操作系统为每一个运行线程安排一定的CPU时间 时间片。系统通过一种循环的方式为线程提供时间片,线程在自己的时间内运行,因时间片相当短,因此,给用户的感觉,就好像线程是同时运行的一样。如果计算机拥有多个CPU,线程就能真正意义上同时运行了。6单线程程序与多线程程序单线程程序多线程程序一个线程两个线程7互斥对象互斥对象(mutex)属于内核对象,它能够确保线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于新信息技术的软件测试技术 课件 第2章 软件测试基础
- 四年级上册美术教学设计-第5课比赛场上-赣美版
- 北京东城区高一物理下学期期中测试卷含答案
- 幼儿园语言课件:《小青虫的梦》
- 2022年度辽宁省安全员之C证(专职安全员)练习题(六)及答案
- 2022年度辽宁省安全员之C1证(机械安全员)题库练习试卷A卷附答案
- 2022年度辽宁省安全员之B证(项目负责人)考试题库
- 2022年度辽宁省安全员之A证(企业负责人)能力测试试卷B卷附答案
- 小学三年级读书心得体会(33篇)
- 工地安全管理月度工作总结(3篇)
- 多元化团队如何实现协同工作
- 2024钢管热镀锌热工系统节能技术规范
- 旅游资源调查实训报告
- 越剧角色行当简介
- 拙政园英文介绍
- 招租方案的作用
- 2024年过氧化工艺模拟考试题库全套
- 旧水泥混凝土路面共振碎石化应用技术规范
- 心肺复苏室管理制度
- 新疆乌鲁木齐水磨沟区2022-2023学年七年级下学期期末语文试题
- 酒店与客人免责的协议书
评论
0/150
提交评论