有没有一种方法可以在不使用调度程序的情况下使用pthreads,因此仅当线程显式屈服或在互斥锁/cond上被阻塞时才进行上下文切换?如果没有,是否有一种方法可以最大程度地减少调度开销,从而使强制上下文切换尽可能少地发生?
该问题涉及POSIX线程的Linux gcc/g++实现。
最佳答案
您可以使用非抢占式线程库Pth(也称为GNU Portable Threads)。使用--enable-pthread
对其进行配置将创建pthreads
的插件替代品。我刚刚在Mac上构建并测试了它,它对于一个简单的pthreads程序也可以正常工作。
从自述文件: