首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

多线程程序优先级设定解决方案

2013-07-08 
多线程程序优先级设定int main(){int i,N30000#pragma parallel for num_threads(20)for(i0iNi++){

多线程程序优先级设定
int main()
{
int i,N=30000;
#pragma parallel for num_threads(20)
for(i=0;i<N;i++)
  {
 test();
  }
test()的运算量很大,系统有24个核心。如果在这个程序运行时候,我希望一直是20个核心%100的执行这个程序,其它人再运行其它程序的时候不会影响我这个程序的运行(即,不会占用我的程序用到的核心)。怎么实现呢?如何设定执行优先级?如何更改呢? 多线程 Parallel 优先级 C/C++
[解决办法]
不太懂,但是要改线程优先级,就要在创建线程的时候添加线程属性参数,并将进程的调度方式改为FIFO或者RR.
[解决办法]
那就是我说的创建线程的时候添加线程属性,pthread_attribute,属性里有个数值可以设置1-99 你设置成最高的就好了.
[解决办法]
linux的线程优先级貌似不管用吧
[解决办法]

引用:
Quote: 引用:

那就是我说的创建线程的时候添加线程属性,pthread_attribute,属性里有个数值可以设置1-99 你设置成最高的就好了.


主要是,在Openmp下我不知道它是如何创建线程的,所以不知道怎么添加。想上边的这个程序,你觉得如何添加呢?

这个我就不知道了,不过如果你用的Openmp要是不支持线程优先级,那也就无法实现你所说的设定优先级了.在posix下,线程是支持优先级的.

热点排行