最近在搞Linux上的多线程,在网上一搜有很多介绍是文章。简单的说就是用pthread_create创建线程,在创建线程之前可以设置线程的属性,包括调度策略、优先级、栈大小等等,这些函数都可以man出来,也可以通过/usr/include/pthread.h查找自己想要的哪方面的函数再进行编程。其中遇到的一个比较恶心的事情是在线程启动后设置优先级,但是pthread_getschedparam得到的调度策略总是0(SCHED_OTHER),郁闷死了,后来发现是在线程创建之前默认了继承父线程的调度优先级,后来设置了inheritsched
为
PTHREAD_EXPLICIT_SCHED,自己设置的调度策略和优先级才起了作用。而且发现在linux上线程调度是一个线程完成之后,在进行另一个线程,而在AIX和Windows都是交替进行了,不知道是不是linux上还有问题。
Linux多线程 PTHREAD_EXPLICIT_SCHED
最新推荐文章于 2024-04-20 15:35:53 发布