Java中线程同步的方法有以下几种:
synchronized关键字:通过synchronized关键字修饰的方法或代码块,在同一时间只能有一个线程进入执行,保证了线程的互斥访问。
ReentrantLock类:通过ReentrantLock类及其相关方法,可以实现线程的同步。ReentrantLock类提供了类似于synchronized关键字的功能,但是相比之下更加灵活。
Lock接口:通过Lock接口及其实现类,比如ReentrantLock类,可以实现线程的同步。Lock接口提供了更加灵活的锁定机制,可以实现更加复杂的同步需求。
wait()和notify()方法:通过wait()方法使线程进入等待状态,通过notify()方法唤醒等待的线程。这两个方法必须在synchronized代码块或方法中使用。
Condition接口:通过Condition接口及其实现类,比如ReentrantLock类的newCondition()方法返回的对象,可以实现线程的同步。Condition接口提供了更加高级的线程等待/唤醒机制。
另外,还有一些其他的同步方法,比如volatile关键字、Atomic类等,这些方法可以实现基本的线程同步,但是相对于前面提到的方法来说,功能较为简单。