什么是线程什么是线程,现场多少有什么区别
自从在20世纪六十年代人们提出了进程的概念后,在OS中一直篮子是以进程作为能拥有资源和独立运行的基本单位的。直到20世纪八十年代中期,人们又提出了比进程更小的能独立运行的基本单位——线程(THREADS),试图用它来提高系统内程序并 发执行的程度,从而可进上步提高系统的吞吐量。 特别是进入20世纪九十年代后,多处理机系统得到了发展,线程能比进程更好地提高程序的并行执行程度,充分地发挥多处理机的优越性,因而在近几年推出的多处理机OS,也都引入了线程,以改OS的性能。
线程(threads, 台湾称 执行绪),也被称为轻量进程(lightweight processes)。 计算机科学术语...全部
自从在20世纪六十年代人们提出了进程的概念后,在OS中一直篮子是以进程作为能拥有资源和独立运行的基本单位的。直到20世纪八十年代中期,人们又提出了比进程更小的能独立运行的基本单位——线程(THREADS),试图用它来提高系统内程序并 发执行的程度,从而可进上步提高系统的吞吐量。
特别是进入20世纪九十年代后,多处理机系统得到了发展,线程能比进程更好地提高程序的并行执行程度,充分地发挥多处理机的优越性,因而在近几年推出的多处理机OS,也都引入了线程,以改OS的性能。
线程(threads, 台湾称 执行绪),也被称为轻量进程(lightweight processes)。
计算机科学术语,指运行中的程序的调度单位。
线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。
线程可以创建和撤消线程,从而实现程序的并发执行。一般,线程具有就绪、阻塞和运行三种基本状态。
在多中央处理器的系统里,不同线程可以同时在不同的中央处理器上运行,甚至当它们属于同一个进程时也是如此。
大多数支持多处理器的操作系统都提供编程接口来让进程可以控制自己的线程与各处理器之间的关联度(affinity)。
书本上的定义当然严谨,但日常应用时,一般可以这样理解:
首先是程序(如一个记事本),
一个可以执行N次,就产生N个进程(一个记事本可以打开N次),
在进程再细分,就出现线程,(你可以粗略地理解为记事本分身执行几个任务,每个任务为一线程)(线程这里不严,但这样先理解是不会错的)。
这几天来又想到了一个更加好的比喻,
程序是一个工厂车间的图纸,是静态的;
而进程是动态的,就是按照该图纸进行建造的工厂车间,(当然一依照一张图纸可以建多个工厂车间,也就是一个程序可以有多个进程);
而线程可以比喻为一个条生产线,(为了对车间的调整,我们可以按照实际情况增加或减少生产线,)平时的感性认识就现在的下载工具(如flashGet,影音传送带等)都是多线程的,我们可以按照实际情况增加或减少进程(并非进程越多越好,有时本来下载的用户不多,你一个人分几个线程,除了线程间的通信造成了消耗外,很有可能自己的几个线程进行竞争)。
。收起