【发布时间】:2018-02-21 16:28:31
【问题描述】:
我有一个不能同时从多个线程调用的函数。你能为此提出一些优雅的断言吗?
【问题讨论】:
-
人们认为的“优雅”完全是基于意见的。
-
std::mutexwith try_lock -
无论如何,你想要断言它是什么意思?
-
“没有同时从多个线程调用”是什么意思?您的意思是在同一时间,还是无论何时只有一个线程应该调用该函数?如果是前者,你应该使用某种锁/互斥锁。如果是后者,您可以只检查调用函数的线程的 id,或者只将函数放在一个线程的范围内(如果可能的话)。
-
这听起来像是试图绕过设计错误进行编码。
标签: c++ multithreading openmp