网络营销

您所在位置:首页 > 网络营销 > 正文

Java架构师丨想不到吧?面试官居然会问你Synchronized原理

文章作者:www.dlhot.com发布时间:2019-10-09浏览次数:1126

Synchronized

的基本用法

Synchronized有三个主要功能:

确保线程是互斥访问同步代码,以确保及时看到共享变量的修改,以有效解决重新排序问题

从语法上讲,Synchronized有三种用途:

修改普通方法以修改静态方法以修改代码块

接下来,我将通过几个示例程序解释这三种使用方法(为了进行比较,除了使用不同的Synchronized之外,三级代码基本相同)。

没有同步

代码段1:

包com.paddx.test.concurrent;

公共类SynchronizedTest {

Public void method1(){

System.out.println('方法1开始');

尝试{

System.out.println('方法1执行');

了Thread.sleep(3000);

} catch(InterruptedException e){

e.printStackTrace();

}

System.out.println('方法1结束');

}

Public void method2(){

System.out.println('方法2开始');

尝试{

System.out.println('方法2执行');

了Thread.sleep(1000);

} catch(InterruptedException e){

e.printStackTrace();

}

System.out.println('方法2结束');

}

Public static void main(String [] args){

Final SynchronizedTest test=new SynchronizedTest();

新线程(新的Runnable(){