[英]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.