另一个可能有点愚蠢的样式问题:
并发应该如何锁定?执行程序或调用者应该负责锁定线程吗?
例如,在任何特定语言中...
Caller::callAnotherThread() {
_executor.method();
}
Executor::method() {
_lock();
doSomething();
_unlock();
}
或者
Caller::callAnotherThread() {
_executor.lock()
_executor.method();
_executor.unlock()
}
Executor::method() {
doSomething();
}
我对线程和锁定的知识很少,因此我希望确保代码的稳健性。第二种方法允许不安全的线程调用... 实际上您可以在不执行任何类型的锁定的情况下调用_executor.method()。
能帮忙吗?
谢谢,