2011年(17)
分类: LINUX
2011-11-24 20:23:33
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system.
教课书上定义的是:进程是资源管理的最小单位,线程是程序执行的最小单位。
很多地方说线程是一种轻量级的进程,其实是不太准确的,进程要求有自己的虚拟地址空间,所有的数据都是独立的,而线程要求的是共享虚拟地址空间,共享全局变量,堆等。
线程是一种比进程轻(创建快,切换快,占用内存少)的,让应用程序并行执行多个任务的一种机制。一个进程可以包含多个线程(至少一个线程),这些线程共享相同的全局内存,相同的虚拟地址空间和一些属性。在多cpu系统中,同一进程中的线程是可以并行执行的,任意一个线程的阻塞都不会影响到其他线程。
图选自The linux programming interface-chapter29.1