请关注pthread_setconcurrency()

本文介绍了pthread_setconcurrency()函数的重要性及其使用方法。该函数用于指定进程中的并发线程数,有助于提高系统调度效率和程序的移植性。忽略此函数可能导致部分线程无法运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     最近在code review一些人的代码的时候,发现了一个问题,就是很少人关注pthread_setconcurrency()函数,其实这个函数在pthread中是一个很重要的函数。在linux下,如果你忽略了这个函数的使用,那么能够并发的线程数目由实现者来控制,对于系统调度的效率而言往往不是什么好的事情,因为默认的设置往往不是最佳的。
     更为糟糕的是,如果在某些系统中,如果你不调用pthread_setconcurrency()函数,那么系统中的运行的线程仅仅是第一个被创建的线程,其他线程根本不会被运行 。比如在solaris 2。6中就有这些情况。为了在unix或者是linux系统上使移植更加的容易,请不要忘记在适当的地方调用次函数,清晰的告诉系统我们使用的线程个数。虽然在某些系统上,这个调用是徒劳的,但是它的使用增强的移植性!
     上面罗嗦了半天,可能网友会问,如何使用这个函数呢?请看一下次函数的定义:
int pthread_setconcurrency(int new_level);
new_level一般是当前进程中线程的使用个数,在我们的系统中,往往线程的个数是可以确定下来的,所以一般在
初始化函数中显示的设置对应的数值。
如果网友想更加详细的知道它的使用方法,请参考:
http://opengroup.org/onlinepubs/007908799/xsh/pthread_getconcurrency.html
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值