Linux的线程和windows 有什么区别?

lmyuanhang 2006-03-03 08:34:41
Linux的线程和windows 有什么区别?
...全文
84 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lmyuanhang 2006-03-03
操作系统运行程序时,不是先调用进程的么,
那怎么样去调线程啊?
回复
lmyuanhang 2006-03-03
这样,除了,占有资源外,L inux的进程和线程就没有分别了啊
回复
lmyuanhang 2006-03-03
在Linux 下,而不再细分去在一个进程中调度每一个线程,把线程也当作一个独立的调度单元来实现的
那又是什么去调线程的呢?
回复
tb01412 2006-03-03
只是一个形容词而已,一般说来一个进程本身需要很多描述信息的,它本身要占用很多资源,而线程却相对占用的资源较少,这也是操作系统为何要使用线程概念的一个原因(当然不是主要原因),因为多个线程可以共享进程的资源!!!!
一般说来操作系统以进程为调度单元,也就是时间片轮转采用进程为一个单元,然后再在每个进程中再来调度每个线程,这是一般的线程调度的概念与实现!!

而在LINUX下,却采用了另一种方案,同样以进程为调度单元,而不再细分去在一个进程中调度每一个线程,把线程也当作一个独立的调度单元来实现的,并且每个线程也拥有一个进程控制块(如同进程一样),所以在LINUX下的线程从这个意义上说不再是一个“真正”的线程,又由于在LINUX下线程的资源共享却一样采用了与进程共享全局变量,共享代码空间,它所占用的资源又较少!!!所以一种比较形象的说法称为“轻进程”,不过这种说法倒比较接近实际
回复
lmyuanhang 2006-03-03
轻量级进程是什么?
回复
tb01412 2006-03-03
在应用层看来,没有什么区别,但是在实现方式以及提供的API来说差别很大!!!!
首先是线程函数名完全不同!!!!与线程相关的锁等API都不一样,这方面是完全不同的
然后,在LINUX下线程是一种轻量级进程,也就是说它与进程在被CPU调度时是同等的,而在WINDOWS下,线程是属于进程中的一个单元,而不是同等地位。
在LINUX下,线程共享了全局变量,函数,不共享堆栈而已。
回复
发帖
Linux_Kernel
创建于2007-08-27

4152

社区成员

Linux/Unix社区 内核源代码研究区
申请成为版主
帖子事件
创建了帖子
2006-03-03 08:34
社区公告
暂无公告