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 }