Да, именно так.synchronized
природа doThings
только останавливает его от одновременного вызова несколькими потоками в одном и том же экземпляре .Переменная x
является общей для global , а не для каждого отдельного экземпляра, поэтому она небезопасна.
В реальных условиях представьте, что это ванная комната с несколькими дверьми- кто-то может открыть одну дверь и затем закрыть ее, но это не мешает кому-то другому войти через другую дверь ...