Ste*_*ani 3 coding-style locking pthreads objective-c++
另一个可能是愚蠢的风格问题:
并发应该如何锁定?执行者或调用者应该负责锁定线程吗?
例如没有特定的语言......
Caller::callAnotherThread() {
_executor.method();
}
Executor::method() {
_lock();
doSomething();
_unlock();
}
Run Code Online (Sandbox Code Playgroud)
或者
Caller::callAnotherThread() {
_executor.lock()
_executor.method();
_executor.unlock()
}
Executor::method() {
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
我对线程和锁定知之甚少,所以我想确保代码是健壮的。第二种方法允许线程不安全调用...从技术上讲,您可以在不执行任何锁定的情况下调用 _executor.method()。
帮助?
谢谢,
被调用者而不是调用者应该进行锁定。被调用者是唯一知道需要同步什么并且唯一可以确保同步的人。如果你把锁定留给调用者,你会做三件坏事:
| 归档时间: |
|
| 查看次数: |
742 次 |
| 最近记录: |