首页
新闻
UniX技术
数据库
经验交流
PHP
Linux考试认证
首页
>
Linux考试认证
UbuntuNativePOSIX线程库
时间:2009-06-19 17:12:38 作者:
我要投稿
Linux初探欢迎您的投稿,投放方法请点击
这里
查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
在2.6版本以前发布的Linux内核中,Linux线程库叫做LinuxThreads,为glibc2.0以后的GNU C库所支持。该库虽然使用了POSIX API,但是并不真正遵循POSIX标准。从2.6内核开......
在2.6版本以前发布的Linux内核中,Linux线程库叫做LinuxThreads,为glibc2.0以后的GNU C库所支持。该库虽然使用了POSIX API,但是并不真正遵循POSIX标准。从2.6内核开始,Linux引入了NPTL。它比LinuxThreads在性能上有了很大的提高,也更遵循 POSIX标准。但是,仅仅使用2.6内核并不等于使用了NPTL。尽管有些发行版会同时携带NPTL和LinuxThreads, 但所有现代的Linux发行版都缺省携带NPTL。
用下面的命令可以查看你的系统上正在使用的POSIX实现:
编辑请注意,该代码中需要翻译的内容为:
(1)“This was returned from SUSE 9.1 installation”翻译成“这是SUSE 9.1返回的结果”
(2)“This was returned from Fedora 2.6.9-1.667 Instatllation”翻译成“翻译成“这是Fedora 2.6.9-1.667返回的结果”
(3)“This was returned from an old RedHat installation” “翻译成“这是一个老版本的RedHat返回的结果”
$ getconf GNU_LIBPATHREAD_VERSION
$ getconf GNU_LIBPATHREAD_VERSION
$ getconf GNU_LIBPATHREAD_VERSION
用下面的方法可以查看正在使用的Linux发行版是用什么编译工具编译链接的。
要找到/bin/ls链接的libpthreads库,如下:
(代码)(P81倒数第14行)
$ ldd /bin/ls |grep libc.so.6
从上面的输出内容可以看到,libc.so.6是和“Native POSIX Threads Library by Ulrich Drepper”一起链接的。
NPTL实现了一对一的线程模型;也就是说,一个用户线程对应一个内核线程。NPTL也实现了POSIX进程间的同步原语,而且线程选项PTHREAD_PROCESS_SHARED也被明确支持了。
1 最大线程数
在Linux上一个应用程序能够创建的线程最大数量在不同的发行版上是不同的。运行在2个CPU 2GB内存上的SUSE9.1在pthread_create返回EAGAIN错误前允许创建16317个线程。EAGAIN错误的意思是说应用程序可能超过了系统的某些限制。该应用程序创建线程的栈大小为16384,这是创建线程时允许的最大栈大小。在把栈大小设置为16384前,该应用程序会在创建第 1021个线程时失败,并返回错误码ENOMEM。任何情况下,8000到16000个线程已经足以满足任何应用程序的需求。
要在Linux上创建大数量的线程,需要先做下面的事情:
1. 创建正确的栈大小(注释17);
2. 检查ulimit(可以输出内存、栈大小限制等的工具),修改对应项或编辑/etc/security/limits.conf文件。
1
/
6
1
2
3
4
5
6
下一页
尾页
如果您需转载 UbuntuNativePOSIX线程库,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
返回首页
发表评论
共有
条评论
用户名:
密码:
验证码:
匿名发表
相关文章
MySQL常用维护管理工具
MySQL常用维护管理工具http://xianguo.com/item/526202631 来自 月光博客
华为认证ar2831ar1820 br304ipsecvpn经典配
中心:ar2831 分支:ar1820 br304需求:中心的内网地址192.168.0.0/24分支的
第三方认证考试大纲:LPIC201考纲
2.209.2 配置NFS服务器 重量级:3 描述:考生应该能够创建exports文件以及
ProC连接Oracle
一段简单的ProC连接Oracle的代码: int connectDb(){EXEC SQL BEGIN DECLA
INNODB在裸设备上的性能简单测试
INNODB在裸设备上的性能简单测试裸设备简单测试2009年4月28日我这里用的S
给VMWare下的Linux操作系统添加一块硬盘
首先在虚拟机上添加一块硬盘,就是"Edit virtual machine settings"
sql 错误18456
sql 错误18456 信息:未与信任sql server相关联.解决方案:sql server 属性->
不同文件构建PHP程序的正确方式
以下为引用的内容:如果计划让其他人或公司可以使用您的 PHP 应用程序,需要
最全的CSS浏览器兼容问题整理
从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的
关于工作流引擎的设计讨论
说点我个人看法哈,一家之言,不一定准确,欢迎批评。这个调度,我的理解还是根
Linux认证心得:一个初学者的RHCE之路
首语:最近,小弟参加了红帽的RHCE认证考试,并取得了RHCE证书。一直以来都想写
VMware下Linux与真实主机共享上网
实现环境: 真实机系统为windows xp或者2003,使用adsl拨号上网,虚拟
sql2000安装问题
前些日子用GHOST的系统重装了电脑,发现SQL怎么也安装不上了,弄了N长时间发
New replication features in SQL Server 2
http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1353404
symbian 传统模式下 应用程序中的视图切换
by chenziteng最简单的办法是通过CCoeControl::MakeVisible()函数改变Con
RedHat预测:满城尽是云计算和虚拟化
Red Hat本周在英国举行的一个新闻发布会上详细介绍了其虚拟化、云计算和
栏目热门
Linux认证考试心得:一个新手RHCE的酸甜苦辣
Linux认证心得:一个初学者的RHCE之路
菜鸟必读:RHCE课堂学习笔记(1)
菜鸟必读:RHCE课堂学习笔记(2)
Linux系统程序启动引导过程详细剖析
站内搜索:
Linux
高级搜索
Powered by
Linux初探
© 1999-2009
RSS