[英]In g++ is C++ 11 thread model using pthreads in the background?
[英]Background thread with pthreads
我正在使用pthreads创建后台线程以在后台加载并执行一些任务,但是由于有时工作量很大,因此它会使应用程序滞后一些。
有什么办法可以设置较低的优先级或不同的调度(或两者结合),以便主线程有更多的CPU时间运行?
使用pthread_attr_setschedparam
http://linux.die.net/man/3/pthread_attr_setschedparam
使用SCHED_IDLE
调度策略降低线程的优先级
希望下面的SO链接可能会有所帮助。
这不能完全回答您的问题,但是Apple建议在《 并发编程指南》中移开线程,并在OS X和iOS上对异步操作使用“调度队列”或“操作队列”。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
// ... background task
});
并且DISPATCH_QUEUE_PRIORITY_LOW
被记录为
调度到队列的项目的优先级较低; 在已调度所有默认优先级和高优先级队列之后,将调度该队列执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.