关于线程和进程

来源:互联网 发布:罗志祥女友的淘宝店 编辑:程序博客网 时间:2024/06/05 02:43
线程是指程序能顺序执行的一个序列。一个线程只有一个入口点,但可能有几个出口点,不过,每个时刻的执行点总是只有一个。线程不是 能够独立运行的程序,而只是某个整体程序内部的一个顺序执行流。所谓多线程,就是通过系统的调度使几个具有不同功能的程序流即 线程同时并行地运行。 在处理器计算机系统中,实际上是不可能使多个线程真正并行运行的,而要通过系统用极短的时间,极快的速度对多个线程进行切换,宏观 上形成多个线程并发执行的效果。 线程和进程之间的差别 线程和进程很想象,它们都是程序的一个顺序执行序列,但两者又有区别。进程是一个实体,每个进程有自己独立的状态,并有自己的专用 的数据段。创建进程时,必须建立和复制其专用数据段。同一个程序中的所有线程只有一个数据段,所以, 创建线程时不必重新建立和复制数据段。由于数据段建立和复制方面的差异,使线程的建立和线程的切换速度大大优于进程, 另一方面,线程又具备进程的大多数优点。 举个例子: 假设银行系统输存款和取款手续,将帐本看成数据段。如果用进程这种机制办,那么当储户去存/取款时,银行应先把帐本复制一遍, 为储户建立一个独立的帐本再结算。如果按线程机制办,那么,银行里所有的出纳员都用同一个帐本,储户来办存/取款时, 也从这个帐本直接结算。用线程机制省去了数据段复制这一步显然会使线程独具特点。 但是由于多个线程共享一个数据段,所以也出现了数据访问过程的互斥和同步问题,这使系统管理功能变得相对复杂。 总的说,一个多线程系统在提高系统的输入/输出速度、有效利用系统资源,改善计算机通信功能以及发挥多独步一时器硬件功能方面显示 很大优势。
原创粉丝点击