java中的synchronized关键字
2014-02-13 13:56
155 查看
synchronized关键字,作用域有两种:
1.是某个对象实例内,synchronized aMethod{}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)。这时,不同的对象实例的synchronized方法是不相干扰的,也就是说,其它线程照样可以同时访问相同类的另一个对象实例的synchronized方法。
2.是某个类的范围,synchronized static a StaticMethod{}防止多个线程同时访问这个类中的synchronized static方法。它可以对类的所有对象实例起作用。
3.除了方法前用synchronized关键字,synchronized关键字还可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。用法是: synchronized(this){/*区块*/},它的作用域是当前对象; Public synchronized void methodAAA()
Public synchronized void methodAAA()
等同于:
synchronized (this)
private byte[] lock = new byte[0]; // 特殊的instance变量
synchronized(lock) { //… }
1.是某个对象实例内,synchronized aMethod{}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)。这时,不同的对象实例的synchronized方法是不相干扰的,也就是说,其它线程照样可以同时访问相同类的另一个对象实例的synchronized方法。
2.是某个类的范围,synchronized static a StaticMethod{}防止多个线程同时访问这个类中的synchronized static方法。它可以对类的所有对象实例起作用。
3.除了方法前用synchronized关键字,synchronized关键字还可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。用法是: synchronized(this){/*区块*/},它的作用域是当前对象; Public synchronized void methodAAA()
Public synchronized void methodAAA()
等同于:
synchronized (this)
private byte[] lock = new byte[0]; // 特殊的instance变量
synchronized(lock) { //… }
相关文章推荐
- 并发编程学习总结(七) :java中synchronized关键字使用详解(1)
- Java中的synchronized关键字
- 深入理解java中的synchronized关键字
- Java多线程(三): synchronized关键字详解
- 从JAVA看C#中volatile和synchronized关键字的作用
- Java synchronized 关键字的讲解
- Java 多线程并发编程之 Synchronized 关键字
- 对java synchronized 关键字的理解
- Java synchronized 关键字用法
- 【java多线程 关键字】synchronized
- synchronized——java同步关键字
- JAVA 线程中的synchronized关键字的使用
- java.lang.Object 的 wait 和 notify方法,及关键字 synchronized的作用
- Java的多线程之同步篇二:synchronized关键字
- Java线程同步机制synchronized关键字的理解
- JAVA之旅(十三)——线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this
- Java并发17:synchronized关键字的两种用法-同步代码块(4)和同步方法(2)
- java线程同步的三种方法[synchronized关键字,Lock加锁,信号量Semaphore]
- java中synchronized关键字作用分析
- Java synchronized 关键字使用方法