Java中的线程同步有以下方法:
-
synchronized关键字:使用synchronized关键字可以修饰方法或代码块,保证同一时间只有一个线程能够访问该方法或代码块。
-
ReentrantLock类:ReentrantLock是一个可重入的互斥锁,可以通过lock()方法获取锁,通过unlock()方法释放锁。
-
Semaphore类:Semaphore是一个信号量,可以限制同时访问某个资源的线程数量。
-
CountDownLatch类:CountDownLatch是一个倒计数器,可以让一个或多个线程等待其他线程执行完毕再继续执行。
-
CyclicBarrier类:CyclicBarrier也是一个倒计数器,可以让多个线程在达到某个条件时同时执行。
-
wait()、notify()、notifyAll()方法:这三个方法是Object类中的方法,可以实现线程间的等待和唤醒。
注意:以上方法的使用应根据具体情况选择,不同的方法适用于不同的场景。