登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Code@Pig Home

喜欢背着一袋Code傻笑的Pig .. 忧美.欢笑.记忆.忘却 .之. 角落

 
 
 

日志

 
 

[FreeBSD] -lpthread 与 -pthread  

2009-10-24 10:31:03|  分类: os_FreeBSD |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
FreeBSD 6.2 上碰到过 -lpthread 编译的程序,用 top 看不到 cpu 占用率的情况,或看到的占用率不准确。
换成 -lthr 即可。

而今天看到这里介绍,使用 -pthread (注意,没有'l'),gcc 会自动链接系统当前版本推荐的 thread lib 以及对应的 thread safe 的 c func。其实-pthread 就是链接到 /usr/lib/libpthread.so,至于此 .so 是哪个线程库的 link,就是系统决定了。
http://www.zeroc.com/forums/help-center/4334-ice-freebsd.html

gcc manual 里面也有关于此的讨论
http://gcc.gnu.org/onlinedocs/libstdc++/manual/using_concurrency.html

注意,FreeBSD 中,其实包含了 libc_r, libthr, libpthread(libkse) 三个版本的多线程库。
lib_r, Reentrant C Library,最老的版本,基本废弃。
libthr, 1:1 thread model,8.0 开始,它就是默认的库。
libpthread(libkse), M:N thread model,6.x, 7.x 下的默认库。
其中 libpthread 默认使用的是 PTHREAD_SCOPE_PROCESS,而 libthr 用的是 PTHREAD_SCOPE_SYSTEM。理论上来说,后者在多核状态下,且服务器主要就跑你的程序的时候,能更好的利用 cpu。
http://kasicass.blog.163.com/blog/static/395619200911289639311

恩,top为何不通过的原因,有空还要细细研究下。


  评论这张
 
阅读(3753)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018