OpenMP 是否支持异步操作?

Does OpenMP support async operations?

我使用 Javascript 有一段时间了,我喜欢它的异步操作,使用回调或承诺和期货。现在我需要使用 OpenMP,但找不到对这些功能的任何支持。

OpenMP 是否支持回调 and/or 期货?

Are callbacks and/or futures supported by OpenMP?

简单回答:否

OpenMP 设计用于并行(即使用多个硬件线程同时计算单个问题的答案),而不是并发(即通过将计算表示为事件触发的回调来提供与外界的快速交互)。

这些是不同的风格和应用领域。考虑到使用并发可以简化您的代码,甚至在单线程硬件上也很有用,而并行性在那里毫无意义,因为它 objective 是使用所有可用的 CPU。

OpenMP 可能不是用于处理并发编程的错误工具,因为它不是为该任务设计的。