Когда у вас одновременно происходит несколько исполнений, понятия «одновременность» не существует. Событиям нельзя придать глобальный порядок во времени, за исключением случаев явной синхронизации. Нет свойства, которое можно было бы наблюдать изнутри языка, которое могло бы наблюдать какой-либо порядок в целом.
В частности, вопрос «заблокирован ли тот мьютекс» бессмысленен. У него нет ответа, на основании которого вы могли бы действовать. Каким бы ни был фиктивный ответ, состояние мьютекса может измениться сразу после этого. Вы ничего не можете сделать с таким ответом, как «да, он заблокирован» (он может стать разблокированным в то же время) или «нет, он разблокирован» (он может быть заблокирован до того, как вы туда доберетесь).
Единственная вещь, которую вы можете сделать с мьютексом, — это попытаться заблокировать его. Вы либо потерпите неудачу и, таким образом, узнаете, что он был заперт, либо преуспеете и, таким образом, узнаете, что это не так, и теперь у вас есть замок.
person
Kerrek SB
schedule
05.09.2014