首页 > 编程语言 > 详细

java高并发之synchronized

时间:2018-04-24 22:15:15      阅读:223      评论:0      收藏:0      [点我收藏+]

java高并发之synchronized

synchronized可以保证代码块或者方法在运行时,同一时刻只有一个方法可以进入临界区域,同时也可以保证共享变量的内存可见性

synchronized可以使用在三种情况:

1. 普通同步方法,锁是当前实例对象

2. 静态同步方法,锁是当前类的class对象

3. 同步方法块,锁是括号里面的对象

package com.tianmaying.crawler.impl;

public class SynchronizedTest {
    public synchronized void test1(){}
}
public void test2(){
synchronized (this){}
}
public static synchronized void test3(){}

 

使用javap -c SynchronizedTest反编译项目 

技术分享图片

 

 可以看出来:

同步方法,同步静态方法:都是标注了方法是synchronized,并没有什么特殊标注,但是据文章《http://www.cnblogs.com/javaminer/p/3889023.html》,表示该方法的access_flags字段的synchronized标志位置为1

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

两个概念:java对象头、monitor

 

java高并发之synchronized

原文:https://www.cnblogs.com/zhangchiblog/p/8934088.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!