在我的程序中使用C / C ++ <thread>?

时间:2016-05-03 11:43:15

标签: c multithreading

我想确定是否应该在代码中使用<thread>。 我正在写一个简单的控制台游戏。就像我输入的字母从控制台顶部掉下来一样,我可以通过实时键入每个字母逐个删除它们。 (为了快速记住名字。)

我认为它应该分成两部分,一部分打印掉掉到底部的随机字母(如果它通过底部,从生命指标得到-1)而另一部分等待字母,用于删除。 )。

两者似乎都需要每个处理器实时在控制台上运行,并且消息传递对于匹配字母是必要的。

2 个答案:

答案 0 :(得分:1)

请注意,即使您的应用程序需要执行看似平行的事情,但这并不意味着您必须使用多个线程。您可以使用事件循环在单个线程中轻松解决您的任务。

通常多线程在以下几种情况下很有用:1)您需要计算性能,在多核系统上并行进行计算; 2)存在影响应用程序其他部分的阻塞操作(例如网络或磁盘I / O)(例如,GUI响应)。

答案 1 :(得分:0)

你可以使用多线程,但坦率地说,我不会。

你需要记住的是,对于人来说,与人类同时发生的短暂时间对于计算机来说是一个小小的永恒。甚至是长的,取决于应用。

什么&#39; ll可能会使你的生活变得更容易就像这样(伪代码):

while (true) {
  // moves letters down, spawns them at the top, checks if they've fallen off the screen
  updateFallingLetters();
  // polls for input, updates game state accordingly
  checkIfIHaveInput();
  // waits until one thirtieth or one sixtieth or whatever of a second has passed.
  sleepUntilFrameRateAfterLastIWasHere();
}