Когда можно увидеть обновление значения общей изменяемой переменной При использовании блокировки для синхронизации в java? - PullRequest
0 голосов
/ 01 мая 2020

Недавно я прочитал книгу под названием «1012 * Параллелизм в прасе». Однако у меня есть запутанный вопрос: если поток (например, A), который получил блокировку, обновил некоторые переменные общей переменной. Для других потоков, конкурирующих за блокировку, когда будут видны эти обновления переменных? сразу после обновления A, или ему нужно подождать, пока A снимет блокировку, или нужно подождать, пока другие потоки получат блокировку, чтобы увидеть его? Чтобы сделать это просто, просто посмотрите на следующий рисунок:

enter image description here

Короче говоря, когда поток B сможет увидеть обновление? в [1], или [2], или [3]? Я знаю, что видимость может быть гарантирована синхронизацией, но я хочу знать, когда это произойдет. В любом случае, ваш ответ всегда приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...