БастыАудиоКомикстерБалаларға арналған
Максим Фролов
Максим Фроловдәйексөз келтірді1 апта бұрын
о если один поток вызовет SomeMethod, а другой попытается вызвать Divide и произвести деление на ноль, то возникнет ситуация взаимоблокировки. Первый поток сначала установит блокировку на _outputLock (в SomeMethod), а затем попытается установить _leftOperandLock и _rightOperandLock (внутри Add), в то время как второй поток установит _leftOperandLock и _rightOperandLock (внутри Divide), а затем попытается установить _outputLock (в Numbers_DivideByZeroEvent). Первый поток будет удерживать _outputLock, ожидая, когда освободятся _leftOperandLock и _rightOperandLock, а в это время второй поток будет удерживать _leftOperandLock и _rightOperandLock, ожидая, когда освободится _outputLock. Это та же самая проблема, которую мы видели раньше, только теперь в нее вовлечено несколько файлов и ее сложнее отладить.
C# Concurrency. Асинхронное программирование и многопоточность
C# Concurrency. Асинхронное программирование и многопоточность
·
Нир Добовицки
C# Concurrency. Асинхронное программирование и многопоточность
Нир Добовицкижәне т.б.
114

Кіру не тіркелу пікір қалдыру үшін