簡體   English   中英

帶pthread的后台線程

[英]Background thread with pthreads

我正在使用pthreads創建后台線程以在后台加載並執行一些任務,但是由於有時工作量很大,因此它會使應用程序滯后一些。

有什么辦法可以設置較低的優先級或不同的調度(或兩者結合),以便主線程有更多的CPU時間運行?

使用pthread_attr_setschedparam http://linux.die.net/man/3/pthread_attr_setschedparam

使用SCHED_IDLE調度策略降低線程的優先級

希望下面的SO鏈接可能會有所幫助。

如何在pthreads中增加線程優先級?

在Linux(pthreads)上等效於SetThreadPriority

無法設置Pthread優先級

這不能完全回答您的問題,但是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM