Другой, возможно, глупый вопрос стиля:
Как должен быть заблокирован параллелизм? Должен ли исполнитель или посетитель отвечать за блокировку потока?
например. без определенного языка ...
Caller::callAnotherThread() {
_executor.method();
}
Executor::method() {
_lock();
doSomething();
_unlock();
}
OR
Caller::callAnotherThread() {
_executor.lock()
_executor.method();
_executor.unlock()
}
Executor::method() {
doSomething();
}
Я мало знаю о многопоточности и блокировке, поэтому хочу убедиться, что код устойчивый. Второй метод позволяет выполнять небезопасные вызовы ... технически вы можете вызвать _executor.method (), не выполняя никакой блокировки.
Помощь
Спасибо