【问题标题】:Multithreaded console application: Pause on keypress without busy waiting多线程控制台应用程序:按键暂停而不忙于等待
【发布时间】:2016-05-03 12:39:37
【问题描述】:

我正在用 C++11 编写一个多线程控制台应用程序。我希望它独立于操作系统,但我在 linux 机器上。

我希望能够在按键时暂停线程,但也允许程序在没有任何按键的情况下完成并退出。目前我的主线程伪代码如下。

while other threads are executing
  sleep for 1 second
  if keypress
    *do stuff*
  end if
end while

所以这有点像忙等待。我想知道是否有更好的方法来做到这一点。

【问题讨论】:

    标签: multithreading c++11 keypress busy-waiting


    【解决方案1】:

    实现它的一种方法(也以跨平台方式)是使用 libSDL,SDL_KeyboardEvent

    【讨论】:

    • 你能再充实一点吗?如何使用它来唤醒线程?
    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • @IgorIvancha:对不起,如果我很密集,但我看不到链接如何回答这个问题。如何使用它来唤醒休眠线程?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 2018-09-29
    • 2015-12-08
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多