Java is prone to deadlocks because "synchronized" makes locking very easy while proving exclusive ownership is still very hard without help from the language (linear types, unique types, borrow checking). If locking is harder in Go, that just turns some deadlocks into data races and crashes.