带有pthreads的后台线程
Background thread with pthreads
我正在使用pthreads创建一个后台线程来加载并在后台执行一些任务,但它会使应用程序有点滞后,因为它的工作有时很紧张。
是否有任何方法可以设置较低的优先级或不同的调度(或两者的组合),使主线程有更多的CPU时间来运行?
这并不能逐字回答你的问题,但是在并发编程指南中苹果建议不要使用线程,而是使用"调度队列"或"操作队列"用于OS X和iOS上的异步操作,例如
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
// ... background task
});
和DISPATCH_QUEUE_PRIORITY_LOW
文档为
分派到队列的项目以低优先级运行;队列如下计划在所有默认优先级和高优先级之后执行队列已被调度。
使用pthread_attr_setschedparam
http://linux.die.net/man/3/pthread_attr_setschedparam
使用SCHED_IDLE
调度策略降低线程
希望下面的链接能有所帮助。
如何在pthreads中增加线程优先级?
相当于Linux中的SetThreadPriority (pthreads)
无法设置Pthread优先级
相关文章:
- 目标C++,如何在后台线程中使用运行循环?
- 为什么我的线程不在后台运行?
- 零MQ 后台线程创建
- CredUIPromptForWindowsCredentials在后台线程中引发Microsoft C++未经处理的异
- 继承、后台线程和 RAII
- 在 Unity 中C++使用后台线程进行图像处理会导致崩溃
- 防止sleep_for阻止后台线程
- Dictach std ::线程在后台运行
- C++线程进行后台加载
- 为什么当应用在后台运行时,本机线程的行为会有所不同
- 有没有一种简单的方法可以使用SFML在后台线程中播放声音
- glewInit 从后台线程调用时失败
- 使用pthreads时的后台线程(不错,优先级)
- 使用QThread运行可管理后台线程的正确方式
- c++允许后台线程在退出应用程序之前完成
- MFC C++后台线程
- 使用提升多线程在后台运行函数
- 如何使用 C# 后台工作线程在本机C++代码中报告进度
- Kinect SDK 在后台线程上崩溃,原因不明
- 如何在后台线程上正确设置全局鼠标挂钩