gpt4 book ai didi

c++ - 使用输入打破 OpenMP 中的循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:04:34 24 4
gpt4 key购买 nike

我已经在这里和那里检查了几个问题和答案 ( example ),但我似乎无法找到我正在寻找的解决方案或方法。

我有一个程序,一旦开始,它就永远不会停止,除非用户输入任何内容。

所以线程正在运行并进行一些微积分,并且它永远不会停止(我希望它是那样的)。

但我希望能够在用户输入内容后立即停止,然后显示最终结果(这并不难)。

所以我的主要问题是:有没有办法在程序运行和显示过程的同时收听输入? (想象一下,显示数字 1 乘 1 (1,2,3,4,5),打印它们,同时能够输入任何值。)

(我认为它在 #pragma omp parallel for 中所做的是使用共享变量(标志)和循环内的 if,所以一旦标志为 truefalsebreak;。)

最佳答案

您可以通过共享全局标志来停止您的程序。我们称它为 should_stop

默认情况下,它设置为 false。

然后,在主线程上的每个计算循环之后(我想某处有一个主循环;相同的模式也适用于任务),检查键盘状态。如果有可用字符(请确保您没有使用阻塞调用。只需轮询缓冲区),设置标志。

然后在所有线程上,在它们完成当前步骤后,检查标志的状态,如果已设置,则完成计算。

关于c++ - 使用输入打破 OpenMP 中的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53006876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com