另一个可能是愚蠢的风格问题:
并发应该如何锁定?执行者或调用者应该负责锁定线程吗?
例如,没有特定的语言...
Caller::callAnotherThread() {
_executor.method();
}
Executor::method() {
_lock();
doSomething();
_unlock();
}
或者
Caller::callAnotherThread() {
_executor.lock()
_executor.method();
_executor.unlock()
}
Executor::method() {
doSomething();
}
我对线程和锁定知之甚少,所以我想确保代码是健壮的。第二种方法允许线程不安全调用......从技术上讲,您可以在不执行任何锁定的情况下调用 _executor.method()。
帮助?
谢谢,