王朝网络
分享
 
 
 

solaris上的两种线程模型

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

我觉得线程可能是让人即爱又恨的东西。爱它的是:在很多时候它确实可以改善程序的结构,可以节省系统资源,甚至可以在一定程度上提高系统的效率。恨它的是:它很容易犯错,关于这一点我体会的是最深的,我们的系统就是由于线程造成了严重的问题。但是话又说回来了,我们也不能因噎废食,常言道“艺高人胆大”,我想只要我们有足够的知识和经验,线程会成为我们手里的一把利器。

我是在solaris上开发的,这里我想介绍一下solaris上的两种线程模型,从整体上描述一下该平台上线程开发的基本知识:

在solaris上有两种线程库,一种是符合POSIX标准的pthread库,一种是SUN自己的thread库,这里我主要针对POSIX标准进行描述。大家在用POSIX函数进行设置线程属性的时候,常常会遇到属性PTHREAD_SCOPE_PROCESS,那么用这种属性建立的线程叫做unbound线程,而采用属性PTHREAD_SCOPE_SYSTEM建立的线程叫做bound线程,那么unbound和bound线程到底有什么区别那?下面我将描述solaris上的两种线程模型,并从中给出答案。

two-level:solaris上的标准实现模型

740)this.width=740" border=undefined

上面这个图中LWP是轻权进程的意识,这里你可以认为它就是CPU,用户空间的线程一旦获得了LWP,也就是说它获得了可执行能力,它可以随时被操作系统调度。

我们看这个图的左半部分,我们看到用户空间的thread和内核空间的LWP并不是一对一的关系,而是N对M的关系,那么由那个线程获得LWP,这个调度的完成是由线程库来完成的,而不需要内核的参与,也就是这种方式的线程上下文切换比较快,并且很明显这种方式更节省内核资源,solaris根据一定的策略提供一个LWP池,供上面更多的线程分享,这种线程就是所说的unbound线程。

看这个图的右半部分,我们可以看到用户空间的线程thread和LWP是one-to-one的对应关系,每一个线程都有一个永久的LWP为它服务,很明显这种方式的线程的实时调度性要好,但是这种线程的上下文切换需要KERNEL的参与,并且由于LWP本身是消耗操作系统资源的,因此这种方式要比上面的那种方式浪费资源,这种方式的线程就是所谓的bound线程。

one-level:solaris上可选实现模型

这种模型其实就是提供一致的线程和LWP的one-to-one对应关系,而没有thread和LWP的N对M的关系,很显然one-level模型要更耗系统资源,但是可能会提高程序的效率。

对于要重新编译的程序,可以加上编译选项-R /usr/lib/lwp来采用one-level模型,对于已经编译好的程序,那么在LD_LIBRARY_PATH环境变量设置加上/usr/lib/lwp即可。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有