线程

来自SylixOS-wiki
(版本间的差异)
跳转至: 导航, 搜索
(以“ 一般来说,我们把正在计算机中执行的程序叫做"进程"(Process) ,而不将其称为程序(Program)。所谓"线程"(Thread),是"进程"中某个单...”为内容创建页面)
 
第1行: 第1行:
 +
==线程==
  
一般来说,我们把正在计算机中执行的程序叫做"进程"(Process) ,而不将其称为程序(Program)。所谓"线程"(Thread),是"进程"中某个单一顺序的控制流。
+
:一般来说,我们把正在计算机中执行的程序叫做“进程”(Process) ,而不将其称为程序(Program)。所谓“线程”(Thread),是“进程”中某个单一顺序的控制流。
新兴的操作系统,大多采用多线程的概念,把线程视为基本执行单位。
+
 
 +
:新兴的操作系统,大多采用多线程的概念,把线程视为基本执行单位,也是操作系统进行任务调度的基本单位。
 +
 
 +
==线程发展历史==
 +
 
 +
:60年代,在操作系统中能拥有资源和独立运行的基本单位是进程,然而随着计算机技术的发展,进程出现了很多弊端,一是由于进程是资源拥有者,
 +
 
 +
创建、撤消与切换存在较大的时空开销,因此需要引入线程;二是由于对称多处理器(SMP)出现,可以并行地运行多个执行单位,而多个进程并行开销过大。
 +
 
 +
因此在80年代,出现了能独立运行的基本单位——线程(Thread)。
 +
 
 +
==线程工作原理==
 +
 
 +
:线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有拥有一些必须的数据结构;它与父进程的其它线程共享
 +
 
 +
该进程所拥有的全部资源。进程可以创建和撤消线程,从而实现程序的并发执行。
 +
 
 +
:就象进程一样,线程在程序中是独立的、并发的执行路径,每个线程有它自己的堆栈、自己的程序计数器和自己的局部变量。但是,与分隔的进程相比,
 +
 
 +
进程中的线程之间的隔离程度要小,它们共享内存、文件句柄等。
 +
 
 +
:进程可以支持多个线程,它们看似同时执行,但互相之间并不同步。一个进程中的多个线程共享相同的内存地址空间,这就意味着它们可以访问相同的变量和对象,
 +
 
 +
而且它们从同一堆中分配对象。尽管这让线程之间共享信息变得更容易,但您必须小心,确保它们不会妨碍同一进程里的其它线程。
 +
 
 +
:一般,线程具有就绪、阻塞和运行三种基本状态。
 +
 
 +
:在对称多处理器(SMP)的系统里,不同线程可以同时在不同的处理器上运行,甚至当它们属于同一个进程时也是如此。大多数支持多处理器的操作系统都提供编程接口
 +
 
 +
来让进程可以控制自己的线程与各处理器之间的亲和度(affinity)。

2015年5月28日 (四) 15:43的版本

线程

一般来说,我们把正在计算机中执行的程序叫做“进程”(Process) ,而不将其称为程序(Program)。所谓“线程”(Thread),是“进程”中某个单一顺序的控制流。
新兴的操作系统,大多采用多线程的概念,把线程视为基本执行单位,也是操作系统进行任务调度的基本单位。

线程发展历史

60年代,在操作系统中能拥有资源和独立运行的基本单位是进程,然而随着计算机技术的发展,进程出现了很多弊端,一是由于进程是资源拥有者,

创建、撤消与切换存在较大的时空开销,因此需要引入线程;二是由于对称多处理器(SMP)出现,可以并行地运行多个执行单位,而多个进程并行开销过大。

因此在80年代,出现了能独立运行的基本单位——线程(Thread)。

线程工作原理

线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有拥有一些必须的数据结构;它与父进程的其它线程共享

该进程所拥有的全部资源。进程可以创建和撤消线程,从而实现程序的并发执行。

就象进程一样,线程在程序中是独立的、并发的执行路径,每个线程有它自己的堆栈、自己的程序计数器和自己的局部变量。但是,与分隔的进程相比,

进程中的线程之间的隔离程度要小,它们共享内存、文件句柄等。

进程可以支持多个线程,它们看似同时执行,但互相之间并不同步。一个进程中的多个线程共享相同的内存地址空间,这就意味着它们可以访问相同的变量和对象,

而且它们从同一堆中分配对象。尽管这让线程之间共享信息变得更容易,但您必须小心,确保它们不会妨碍同一进程里的其它线程。

一般,线程具有就绪、阻塞和运行三种基本状态。
在对称多处理器(SMP)的系统里,不同线程可以同时在不同的处理器上运行,甚至当它们属于同一个进程时也是如此。大多数支持多处理器的操作系统都提供编程接口

来让进程可以控制自己的线程与各处理器之间的亲和度(affinity)。

个人工具
名字空间

变种
操作
导航
工具