Chinaunix首页 | 论坛 | 博客
  • 博客访问: 276504
  • 博文数量: 28
  • 博客积分: 290
  • 博客等级: 二等列兵
  • 技术积分: 326
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-10 12:12
文章分类

全部博文(28)

文章存档

2020年(1)

2018年(1)

2017年(3)

2015年(7)

2014年(9)

2010年(3)

2006年(4)

我的朋友

分类: Windows平台

2015-11-21 12:59:06

进程与线程

应用程序由一个或多个进程组成。什么是进程?最通俗地解释进程是正在执行的程序。进程环境中运行着一个或多个线程。线程是获得操作系统分配处理器时间的最基本的执行单位。线程能够执行进程任何部分的代码,包括当前正在被别线程执行的代码。


进程

进程提供了执行程序所需的资源。这些资源有一个虚拟地址空间、可执行代码、系统对象的句柄、安全环境、唯一的标识符、环境变量、优先级、最小和最大的工作集尺寸,以及至少一个执行线程。每个进程都以一个线程开始,通常称之为主线程,但是也可以在线程中创建额外的线程。


线程

线程是进程可用来调度执行的实体。进程的所有线程共享它的虚拟地址空间和系统资源。每个线程都维护各自的异常处理器、调度优先级、线程本地存储器、唯一的线程标识符,以及一组结构体,系统用来在线程被调度前保存它的线程环境。线程环境包括机器寄存器的集合、内核栈、线程环境块、以及一个它在进程地址空间上的用户栈。线程也有它自己的安全环境,用来模拟客户。


windows支持抢占式多任务机制,这种机制能够产生多个进程的线程同时执行的效果。在一台多处理器的计算机中,系统还能够同步地执行与处理器一样多的线程。


工作对象

工作对象允许成群的进程以一个单位来管理。工作对象是可命名的、安全的、可共享的对象,它能够控制进程的属性。在工作对象上执行的操作会影响到所有与它关联的进程。


线程池

线程池是工作线程的集合,它有效地代表应用程序执行异步回调函数。它主要用来减少应用程序的线程数量,并对工作线程进行管理。


纤程

纤程是由应用程序自己负责调度执行的线程单位。纤程运行在调度它的线程环境中。每个线程可以调度多个纤程。通常情况下,纤程不会比多线程更好。但是,使用纤程更容易编写那些能够调度自己线程的应用程序。


用户模式调度

用户模式调度度是应用程序用来调度它自己线程的一种轻量级的机制。与纤程不同的是,处于用户模式调度的线程拥有自己的线程环境,而纤程只能与别的线程共享线程环境。应用程序可以在不需系统调度程序的情况下切换处于用户模式的UMS线程,并在线程阻塞在内核的时候重新取得处理器的控制。


阅读(2259) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~