我正在做一个项目,我需要使用 pthread (C++) 使用多个线程。我有个问题:
当我想在该线程中进行一些高性能计算而没有太多其他线程中断它时,最好的 pthread 参数配置设置是什么?
目前我正在使用这样的东西:
pthread_t thread;
struct sched_param param;
int sched = SCHED_FIFO;
memset(¶m, 0, sizeof(sched_param));
// Now I set priority to max value (sched_get_priority_max() returns that value)
param.sched_priority = sched_get_priority_max();
// Create my thread
pthread_create(&thread, NULL, (void *) &hard_number_crunching, (void *) &structure_passed_to_thread);
// finally I set parameters to thread
pthread_setschedparam(&thread, sched, ¶m);
我在 SCHED_FIFO 和 SCHED_RR 之间切换“int sched”,但这对我没有多大帮助。是否可以强制该线程在 CPU 上运行比现在更长的时间?