[英]thread synchronization and priority in CPP
我正在尝试创建一个任务管理器,它接受任务并将每个任务作为新线程运行,在 Linux 环境中使用 C++ 和(当前) std::thread
。
我将所有正常的任务线程都保存在std::vector
中,但我找不到合适的 function 来停止这些线程。 有没有办法,最好不使用锁,来实现想要的行为? 也许使用<pthread>
或提升线程?
没有直接的方法可以从外部中断线程。
Boost 中断点可以方便地停止所有事情,但这并不等同于暂停。
我建议您使用条件变量(是的互斥锁)实现自己的“中断” class 以在任务中的任何位置有效地检查和等待。 但是,您可以明确地调用这些中断。
也许另一种方法是使您的优先任务具有多线程可读性,以便您可以分配更多线程来完成它们=>调度程序更有可能首先完成它们,但这不确定所以忘记我所说的。
对不起,我不知道有什么比这更好的了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.