java多线程同步方式(无讲解)

来源:互联网 发布:酷家乐衣柜设计软件 编辑:程序博客网 时间:2024/06/07 03:16

内容为从网上整理而来,为自己以后提供解决方向,具体内容再百度解决吧。。。。




1.synchronized关键字修饰方法(作用域:对象)、静态方法(作用域:类)、代码块(作用域:对象 参数:this、其他任意对象(如: private byte[] lock = new byte[0];  // 特殊的instance变量));

2.使用特殊域变量volatile:volatile关键字为域变量的访问提供了一种免锁机制,使用volatile修饰域相当于告诉虚拟机该域可能会被其他线程更新,因此每次使用该域就要重新计算,而不是使用寄存器中的值。volatile不会提供任何原子操作,它也不能用来修饰final类型的变量。

只能在有限的一些情形下使用 volatile 变量替代锁。要使 volatile 变量提供理想的线程安全,必须同时满足下面两个条件:对变量的写操作不依赖于当前值;该变量没有包含在具有其他变量的不变式中。

3.使用current类里的重入锁ReentrantLock

4.使用局部变量ThreadLocal

则每一个使用该变量的线程都获得该变量的副本,副本之间相互独立,这样每一个线程都可以随意修改自己的变量副本,而不会对其他线程产生影响。


0 1
原创粉丝点击