pthread_setconcurrency简介

来源:互联网 发布:网络打印机共享设置 编辑:程序博客网 时间:2024/06/05 08:41
最近在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
原创粉丝点击