synchronized实现原理及其优化-(自旋锁,偏向锁,轻量锁,重量锁)

1.synchronized概述:

  synchronized修饰的方法或代码块相当于并发中的临界区,即在同一时刻jvm只允许一个线程进入执行。synchronized是通过锁机制实现同一时刻只允许一个线程来访问共享资源的。另外synchronized锁机制还可以保证线程并发运行的原子性,有序性,可见性。

2.synchronized的原理:

  我们先通过反编译下面的代码来看看Synchronized是如何实现对代码进行同步的:

  步骤:首先找到存放java文件的目录,在地址栏输入cmd进入命令行,然后执行javac test.java命令,形成class文件,接着执行javap -v test.class进行反编译。

【代码示例】:同步方法

1 class thread extends Thread{ 2 Object obj=new Object(); 3 @Override 4 public synchronized void run() { 5 System.out.println("run..."); 6 } 7 } 8 public class test { 9 public static void main(String[] args) { 10 new thread().start(); 11 } 12 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzgpwj.html