当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《VC++深入详解教学》第十五讲 多线程与聊天室程序的创建(孙鑫)

资源类别:文库,文档格式:PPT,文档页数:8,文件大小:71.5KB,团购合买
程序是计算机指令的集合,它以文件的形式存储在磁盘上。 进程:通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动。
点击下载完整版文档(PPT)

多线程与聊天室程序 的创建 主讲人:孙鑫 http://www.sunxin.org

多线程与聊天室程序 的创建 主讲人:孙鑫 http://www.sunxin.org

程序、进程和线程 程序和进程 程序是计算机指令的集合,它以文件的形式存储在磁盘上 灌在頸省彆空術运赁舆 的程的实例,是 ■进程是资源申请、调度和独立运行的单位,因此,它使用 统中的运行资源;而程序不能申请系统资源,不能被系 统调度,也不能作为独立运行的单位,因此,它不占用系 统的送行资源。 进程由两个部分组成 操作系统用来管理进程的内核对象。内核对象也是系统用来存放 关干进程的统计信息的地方 2、地址空间。它包含所有可执行模块或DL模块的代码和数据。它 还包含动态内存分配的空间。如线程堆栈和堆分配空间 http://www.sunxin.org

程序、进程和线程 --程序和进程 ◼ 程序是计算机指令的集合,它以文件的形式存储在磁盘上。 ◼ 进程:通常被定义为一个正在运行的程序的实例,是一个 程序在其自身的地址空间中的一次执行活动。 ◼ 进程是资源申请、调度和独立运行的单位,因此,它使用 系统中的运行资源;而程序不能申请系统资源,不能被系 统调度,也不能作为独立运行的单位,因此,它不占用系 统的运行资源。 ◼ 进程由两个部分组成: 1、操作系统用来管理进程的内核对象。内核对象也是系统用来存放 关于进程的统计信息的地方。 2、地址空间。它包含所有可执行模块或DLL模块的代码和数据。它 还包含动态内存分配的空间。如线程堆栈和堆分配空间。 http://www.sunxin.org

程序、进程和线程 进程 进程是不活泼的。进程从来不执行任何东西,它 只是线程的容器。若要使进程完成某项操作, 必须拥有一个在它的环境中运行的线程,此线程 负责执行包含在进程的地址空间中的代码 单个进程可能包含若干个线程,这些线程都“同 时”执行进程地址空间中的代码。 每个进程至少拥有一个线程,来执行进程的地址 空间中的代码。当创建一个进程时,操作系统会 自动创建这个进程的第一个线程,称为主线程 此后,该线程可以创建其他的线程 http://www.sunxin.org

程序、进程和线程 --进程 ◼ 进程是不活泼的。进程从来不执行任何东西,它 只是线程的容器。若要使进程完成某项操作,它 必须拥有一个在它的环境中运行的线程,此线程 负责执行包含在进程的地址空间中的代码。 ◼ 单个进程可能包含若干个线程,这些线程都“同 时” 执行进程地址空间中的代码。 ◼ 每个进程至少拥有一个线程,来执行进程的地址 空间中的代码。当创建一个进程时,操作系统会 自动创建这个进程的第一个线程,称为主线程。 此后,该线程可以创建其他的线程。 http://www.sunxin.org

程序、进程和线程 进程地址空间 系统赋予每个进程独立的虚拟地址空间。对于32位进程来说,这个地址空间 是4GB 每个进程有它自己的私有地址空间。进程A可能有一个存放在它的地址空间中 的数据结构,地址是0x12345678,而进程B 结构存放 在它的地址空间中,地址是0x12345678。当进程A中运行的线程访问地址为 的内存时,这些线程访问的是进程A的数据结构 的线程访问地址为0x12345678的内存时,这些线程访问的是进程B的数据结构。 进程A中运行的线程不能访问进程B的地址空间中的数据结构,反之亦然 ■4GB是虚拟的地址空间,只是内存地址的一个范围。在你能成功地访问数据 之前,必须赋予物理存储器,或者将物理存储器映射到 4GB虚拟地址空间中,2GB是内核方式分区,供内核代码、设备驱动程序 速缓冲、非页面内存池的分配和进程页面表等使用 方式分 区使用的地址空间约为2GB,这个分区是进程的私有地址空间所在的地方 程的薮不孬孛右忌角程菜锐餒夯詨踅貍轳籍誇关部穷毁的地芳 http://www.sunxin.org

程序、进程和线程 --进程地址空间 ◼ 系统赋予每个进程独立的虚拟地址空间。对于32位进程来说,这个地址空间 是4GB。 ◼ 每个进程有它自己的私有地址空间。进程A可能有一个存放在它的地址空间中 的数据结构,地址是0x12345678,而进程B则有一个完全不同的数据结构存放 在它的地址空间中,地址是0x12345678。当进程A中运行的线程访问地址为 0x12345678的内存时,这些线程访问的是进程A的数据结构。当进程B中运行 的线程访问地址为0x12345678的内存时,这些线程访问的是进程B的数据结构。 进程A中运行的线程不能访问进程B的地址空间中的数据结构,反之亦然。 ◼ 4GB是虚拟的地址空间,只是内存地址的一个范围。在你能成功地访问数据 而不会出现非法访问之前,必须赋予物理存储器,或者将物理存储器映射到 各个部分的地址空间。 ◼ 4GB虚拟地址空间中,2GB是内核方式分区,供内核代码、设备驱动程序、 设备I/O高速缓冲、非页面内存池的分配和进程页面表等使用,而用户方式分 区使用的地址空间约为2GB,这个分区是进程的私有地址空间所在的地方。 一个进程不能读取、写入、或者以任何方式访问驻留在该分区中的另一个进 程的数据。对于所有应用程序来说,该分区是维护进程的大部分数据的地方。 http://www.sunxin.org

程序、进程和线程 线程 线程由两个部分组成 1、线程的内核对象,操作系统用它来对线程实脑管理。内核对象也是系统用 米存放线程统计信息的地方 2、线程雄,它用于组护线程在执行代码时需要的所有参数和局部变量。 ■当创建线程时,系统创建一个线程内核对象。该线程内核对象不是线程本身 而是操作系统用来管理线程的较小的数据结构。可以将线程内核对象视为由 关于线程的统计信息组成的一个小型数据结构。 线程总是在某个进程环境中创建。系统从进程的地址空间中分配内存,供线 程的堆栈使用。新线程运行的进程环境与创建线程的环境相同。因 访问进程的内核对象的所有句柄、进程中的所有内存和在这个相同的 进程中的所有其他线程的堆栈。这使得单个进程中的多个线程确实能够非常 容易地互相通信。 线程只有一个内核对象和一个堆栈,保留的记录很少,因此所需要的内存也 阉为繻熈蹬 开销比进程少,因此在编程中经常采用多线程来解决编程问 创建新的进程 http://www.sunxin.org

程序、进程和线程 --线程 ◼ 线程由两个部分组成: 1、线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用 来存放线程统计信息的地方。 2、线程堆栈,它用于维护线程在执行代码时需要的所有参数和局部变量。 ◼ 当创建线程时,系统创建一个线程内核对象。该线程内核对象不是线程本身, 而是操作系统用来管理线程的较小的数据结构。可以将线程内核对象视为由 关于线程的统计信息组成的一个小型数据结构。 ◼ 线程总是在某个进程环境中创建。系统从进程的地址空间中分配内存,供线 程的堆栈使用。新线程运行的进程环境与创建线程的环境相同。因此,新线 程可以访问进程的内核对象的所有句柄、进程中的所有内存和在这个相同的 进程中的所有其他线程的堆栈。这使得单个进程中的多个线程确实能够非常 容易地互相通信。 ◼ 线程只有一个内核对象和一个堆栈,保留的记录很少,因此所需要的内存也 很少。 ◼ 因为线程需要的开销比进程少,因此在编程中经常采用多线程来解决编程问 题,而尽量避免创建新的进程。 http://www.sunxin.org

程序、进程和线程 线程运行 ■操作系统为每一个运行线程安排一定的CPU 时间——时间片。系统通过一种循环的方 式为线程提供时间片,线程在自己的时间 内运行,因时间片相当短,因此,给用户 的感觉,就好像线程是同时运行的一样 如果计算机拥有多个CPU,线程就能真正意 义上同时运行了 http://www.sunxin.org

程序、进程和线程 --线程运行 ◼ 操作系统为每一个运行线程安排一定的CPU 时间 —— 时间片。系统通过一种循环的方 式为线程提供时间片,线程在自己的时间 内运行,因时间片相当短,因此,给用户 的感觉,就好像线程是同时运行的一样。 ◼ 如果计算机拥有多个CPU,线程就能真正意 义上同时运行了。 http://www.sunxin.org

单线程程序与多线程程序 单线程程序 多线程程序 两个线程 线程 http://www.sunxin.org

单线程程序与多线程程序 单线程程序 多线程程序 一个 线程 两个线程 http://www.sunxin.org

互斥对象 ■互斥对象( mutex)属于内核对象,它能够确 保线程拥有对单个资源的互斥访问权。 ■互斥对象包含一个使用数量,一个线程I 和一个计数器。 ID用于标识系统中的哪个线程当前拥有互 斥对象,计数器用于指明该线程拥有互斥 对象的次数。 http://www.sunxin.org

互斥对象 ◼ 互斥对象(mutex)属于内核对象,它能够确 保线程拥有对单个资源的互斥访问权。 ◼ 互斥对象包含一个使用数量,一个线程ID 和一个计数器。 ◼ ID用于标识系统中的哪个线程当前拥有互 斥对象,计数器用于指明该线程拥有互斥 对象的次数。 http://www.sunxin.org

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
已到末页,全文结束
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有