java之synchronized学习篇

来源:互联网 发布:淘宝假币 编辑:程序博客网 时间:2024/06/08 11:36

Synchronized是java当中的关键字,可以用来修饰方法或者代码块,它的作用是限制在

多线程的环境下只允许一个线程对修饰的方法或者代码块的访问。

  1. 当对象中声明一个synchronized(this)的代码块时,相当于在这个对象上加一个锁(monitor),当一个线程去访问这个代码块时,首先需要申请持有对象锁,如果成功,就可以继续执行这段代码块;如果失败,则需要进入到等待队列,等待当前占有这段代码的锁的线程执行完这段代码释放锁。
  2. 当一个线程访问对象中的synchronized(this)的代码块时,其他线程可以自由访问该对象中的非synchronized代码块或者时方法
  3. 当对象中声明了多个synchronized(this)的代码块时,只是声明了一个对象锁。也就是说当一个线程在访问其中的一个synchronized(this)的代码块时,其他线程不允许访问该对象的任何synchronized(this)的代码块。
  4. 上面几条原则对其他类型的对象锁也适用。


0 0
原创粉丝点击