本文主要是介绍java锁的到底是锁的什么??,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
锁住的内容
锁代码块
对多个线程使用的多个此类A的代码加锁,即使多个线程多个对象也 会只有一个线程进入到此代码块,与对象个数,线程个数无关。
实现方式
(1)类代码块 public void a(){ synchronized(A.class){} }
(2)静态lock对象 static Lock lock=new ReetrantLock();
(3)静态方法 public synchronized static void xx(){}
锁对象
对多个线程使用的同一个类A对象加锁,与线程个数无关,多个线程中必须使用同一个类A对象,才会同步线程。
实现方式
(1)对象代码块 public void a() synchronized(this){} }
(2)非静态方法 public synchronized void xx(){}
(3) 非静态lock对象 Lock lock=new ReetrantLock()
Synchronized 锁
1、synchronized加在非静态方法前和synchronized(this)都是锁住了这
这篇关于java锁的到底是锁的什么??的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!