繁体   English   中英

CPP中的线程同步和优先级

[英]thread synchronization and priority in CPP

我正在尝试创建一个任务管理器,它接受任务并将每个任务作为新线程运行,在 Linux 环境中使用 C++ 和(当前) std::thread

  • 任务管理器接受正常任务和优先任务。
  • 当优先任务到达时,所有正常任务都需要暂停,直到优先任务完成。

我将所有正常的任务线程都保存在std::vector中,但我找不到合适的 function 来停止这些线程。 有没有办法,最好不使用锁,来实现想要的行为? 也许使用<pthread>或提升线程?

没有直接的方法可以从外部中断线程。

Boost 中断点可以方便地停止所有事情,但这并不等同于暂停。

我建议您使用条件变量(是的互斥锁)实现自己的“中断” class 以在任务中的任何位置有效地检查和等待。 但是,您可以明确地调用这些中断。

也许另一种方法是使您的优先任务具有多线程可读性,以便您可以分配更多线程来完成它们=>调度程序更有可能首先完成它们,但这不确定所以忘记我所说的。

对不起,我不知道有什么比这更好的了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM