(1)同步方法:通过synchronized关键字修改的方法。因为java中的每个对象都有一个内置锁,所以当用这个关键字修改一个方法时,这个内置锁将保护整个方法。在调用此方法之前,需要获取内置锁,否则会被阻止。(2)synchronized代码块是用synchronized关键字修饰的语句块。由该关键字修改的语句块将自动锁定以实现同步。(3)线程同步是通过使用特殊的域变量volatile来实现的。volatile关键字提供了访问域变量的无锁机制。b.使用volatile修改域相当于告诉虚拟机该域可能被其他线程更新。因此,每次使用域时,都需要重新计算,而不是使用值d。寄存器中的volatile不提供任何原子操作,也不能用于修改final类型的变量。(4)利用可重入锁实现线程同步,在javase5.0中增加了一种新的方法java.util.concurrent文件包以支持同步。reentrantlock类是一个可以重新输入、互斥并实现锁接口的锁。它具有与同步方法和fast相同的基本行为和语义,并扩展了它的能力。(5)利用局部变量实现线程同步