Linux的线程和windows 有什么区别?
Linux的线程和windows 有什么区别? 问题点数:60、回复次数:6Top
1 楼tb01412(tb)回复于 2006-03-03 20:53:58 得分 60
在应用层看来,没有什么区别,但是在实现方式以及提供的API来说差别很大!!!!
首先是线程函数名完全不同!!!!与线程相关的锁等API都不一样,这方面是完全不同的
然后,在LINUX下线程是一种轻量级进程,也就是说它与进程在被CPU调度时是同等的,而在WINDOWS下,线程是属于进程中的一个单元,而不是同等地位。
在LINUX下,线程共享了全局变量,函数,不共享堆栈而已。Top
2 楼lmyuanhang(远航)回复于 2006-03-03 21:01:31 得分 0
轻量级进程是什么?Top
3 楼tb01412(tb)回复于 2006-03-03 21:11:53 得分 0
只是一个形容词而已,一般说来一个进程本身需要很多描述信息的,它本身要占用很多资源,而线程却相对占用的资源较少,这也是操作系统为何要使用线程概念的一个原因(当然不是主要原因),因为多个线程可以共享进程的资源!!!!
一般说来操作系统以进程为调度单元,也就是时间片轮转采用进程为一个单元,然后再在每个进程中再来调度每个线程,这是一般的线程调度的概念与实现!!
而在LINUX下,却采用了另一种方案,同样以进程为调度单元,而不再细分去在一个进程中调度每一个线程,把线程也当作一个独立的调度单元来实现的,并且每个线程也拥有一个进程控制块(如同进程一样),所以在LINUX下的线程从这个意义上说不再是一个“真正”的线程,又由于在LINUX下线程的资源共享却一样采用了与进程共享全局变量,共享代码空间,它所占用的资源又较少!!!所以一种比较形象的说法称为“轻进程”,不过这种说法倒比较接近实际Top
4 楼lmyuanhang(远航)回复于 2006-03-03 21:17:35 得分 0
在Linux 下,而不再细分去在一个进程中调度每一个线程,把线程也当作一个独立的调度单元来实现的
那又是什么去调线程的呢?Top
5 楼lmyuanhang(远航)回复于 2006-03-03 21:25:23 得分 0
这样,除了,占有资源外,L inux的进程和线程就没有分别了啊Top
6 楼lmyuanhang(远航)回复于 2006-03-03 21:29:48 得分 0
操作系统运行程序时,不是先调用进程的么,
那怎么样去调线程啊?Top




