Java中線程同步的方法有以下幾種:
synchronized關鍵字:通過synchronized關鍵字修飾的方法或代碼塊,在同一時間只能有一個線程進入執行,保證了線程的互斥訪問。
ReentrantLock類:通過ReentrantLock類及其相關方法,可以實現線程的同步。ReentrantLock類提供了類似于synchronized關鍵字的功能,但是相比之下更加靈活。
Lock接口:通過Lock接口及其實現類,比如ReentrantLock類,可以實現線程的同步。Lock接口提供了更加靈活的鎖定機制,可以實現更加復雜的同步需求。
wait()和notify()方法:通過wait()方法使線程進入等待狀態,通過notify()方法喚醒等待的線程。這兩個方法必須在synchronized代碼塊或方法中使用。
Condition接口:通過Condition接口及其實現類,比如ReentrantLock類的newCondition()方法返回的對象,可以實現線程的同步。Condition接口提供了更加高級的線程等待/喚醒機制。
另外,還有一些其他的同步方法,比如volatile關鍵字、Atomic類等,這些方法可以實現基本的線程同步,但是相對于前面提到的方法來說,功能較為簡單。