java线程的同步方式

1、synchroinzed 修饰方法,例如:

        public synchroinzed void get(),对象须获得该方法的内置锁才能调用此方法,否则处于阻塞状态.

2、synchroinzed修饰的同步代码块:

        synchroinzed(object){

         }

3、volatile关键字来实现同步

         被voaltile修饰的域会告诉虚拟机此线程可能被更新,然后每次使用该域都会都要重新计算值,而不是使用寄存器的值.

4、使用ReentrantLock类

       ReentrantLock是可重入,实现Lock接口的类.

      RenntrantLock需要显示的指定起始位置和终止位置,且在加锁和解锁处需通过lock()和unLock()声明

5    ThreadLocal类实现线程同步

       ThreadLocal修饰变量,为每一个线程创建一个变量副本,前面的方法采用以时间换空间的方式,ThreadLock采用以空间换时间的方式.

      常用的方法有:InitialValue();

                          set(T value);get();

        


你可能感兴趣的:(java)