大佬教程收集整理的这篇文章主要介绍了c – 使用pthread时的后台线程(不错,优先级),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在后台处理正在运行时,GUI非常无响应,我认为这是因为后台线程正在耗尽cpu时间.
在Windows上你可以在后台线程上设置:: SetThreadPriority(hThread,THREAD_PRIORITY_BELOW_NORMAL),一切都很好.
但是在Linux上我使用的是pthreads,我找不到一个好的选择.
我已经考虑过了;
> :: sched_setscheduler(scheD_FIFO)或:: sched_setscheduler(scheD_RR) – 这是不可行的,因为它需要root(对我的GUI应用程序不好) – 这也会使GUI线程拥有太多的cpu;我只希望GUI优先于后台线程.
> :: pthread_setschedparam但是当使用不支持scheD_FIFO或scheD_RR以外的任何东西时(:: sched_get_priority_min(scheD_OTHER)和:: sched_get_priority_max(scheD_OTHER)都返回0)
>有多个进程并使用:: nice. GUI和后台线程之间存在太多耦合以使其可行(并且为此设计移植如此多的代码是一项大量工作)
>使用:: setpriority重新调整后台线程.这确实有效 – 但是直接反对文档所说的内容:PThreads documentation(因此可能会在以后的系统中“修复”)
我确信这是GUI应用程序的一种常见模式,所以我错过了什么?
马库斯.
编辑:添加:: setpriority到选项列表(感谢ZalewaPL)
以上是大佬教程为你收集整理的c – 使用pthread时的后台线程(不错,优先级)全部内容,希望文章能够帮你解决c – 使用pthread时的后台线程(不错,优先级)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。