我想知道哪些用户空间线程库(对于标准C++)可用,它们允许对应用程序级抢占调度进行细粒度控制。目标平台是POSIX,但具有跨平台解决方案将特别好。用户空间线程库
Q
用户空间线程库
0
A
回答
0
Portable Runtime System具有可定制的用户空间的抢占式调度,但是是用C写
0
C++ 11标准库支持线程,认为它依赖于Linux上的pthreads。 你也可以直接使用pthreads(它是用C实现的)。如果你想要可移植的东西 - Qt有很好的线程支持。
2
如果足以设置线程的优先级,则可以使用pthread:How to increase thread priority in pthreads?。如果你想能够手动安排,那么你应该使用协作线程,如longjump或http://www.gnu.org/software/pth/pth-manual.html。要使用多个处理器,您需要内核线程,您可以通过pthread或OpenMP获取内核线程。
基本上你最初应该产生几个内核线程,固定它们,并在内核线程之上运行其他协作线程。请注意,协作式线程是非抢先式的,除非您使用定时器事件实现抢占,但内核线程将被抢占。一些协作式线程方案在C++中不能很好地工作,特别是他们可能会在切换时调用堆栈中变量的析构函数。
相关问题
- 1. 为用户空间线程库编写调度程序
- 2. 线程在用户空间和产量
- 3. Java或C#的线程基于用户空间线程或内核空间线程?
- 4. Python线程模块创建用户空间线程或内核特殊线程
- 5. 的Linux用户空间线程,内核线程,轻量级进程
- 6. 从内核线程为用户空间分配内存
- 7. 作为线程调用的C函数 - Linux的用户空间程序
- 8. 线程间通信(和库?)
- 9. 在用户空间和内核空间上执行进程
- 10. 用户空间vs内核空间驱动程序
- 11. 内存分配内核空间和用户空间进程
- 12. C - 用户级线程库示例
- 13. Linux用户空间ELF加载程序
- 14. 用户空间内存编辑程序
- 15. 使用pthread制作用户空间线程库,您如何正确创建第一个线程? (第2个线程)
- 16. 多线程程序在C:计算线程堆栈空间
- 17. 线程“JavaFX应用程序线程”中的异常java.lang.OutOfMemoryError:Java堆空间
- 18. 多线程相同的地址空间
- 19. 多线程虚拟地址空间?
- 20. 线程返回到坏空间地址
- 21. Powershell运行空间多线程/ PoshRSJob
- 22. R6016 - 线程数据空间不足
- 23. 线程在别人的地址空间
- 24. 空间线数量
- 25. 如何在C++的用户空间模拟线程本地存储?
- 26. 从FreeBSD的内核核心转储中提取用户空间线程堆栈
- 27. 显示用户时间线
- 28. JTOpen用户空间读取
- 29. 来自用户空间总线的Linux DMA错误
- 30. 命名空间路线中的未命名空间路线
什么是“对应用程序级的抢占式调度细粒度的控制”是什么意思?什么样的控制,如何/何时?假设标准的'pthreads'不够好,你需要什么? – 2013-03-10 20:02:04
我想实现应用程序级调度 - 所以我希望能够使线程(可能正在等待互斥体)进入睡眠状态,并在稍后唤醒它们(并恢复它们的状态)并设置优先级。 – lorefnon 2013-03-10 20:21:40
如果有这样一个图书馆,我不会感到惊讶,但我不知道其中之一。 – 2013-03-10 20:24:08