文档章节

Synchronized的用法

rainmanqqst
 rainmanqqst
发布于 2017/02/28 11:51
字数 279
阅读 24
收藏 0

Synchronized的大概有4中用法

1.修饰一个方法,如:

public synchronized void count(){

}

在这种情况下,一个对象一次只能有一个线程可以访问该方法。如果是类的不同实现对象,访问同一接口不会受到影响。如果该类中有多个方法都添加了synchronized方法,则一个对象调用其中一个synchronized方法时,该对象的其他线程不允许调用其他synchronized方法

2.修饰一个代码块,如

public void count(){
    synchronized(this){

    }
}

在这种情况下,同一个对象,一次只能有一个线程访问代码块中的代码

3.修饰一个静态方法,如

public synchronized static void count(int time){
        
}

由于静态方法是属于类的,所以该类的所有实现对象,一次只能有一个线程使用该方法

4.修饰一个类,如

public class ThreadSync{

public void count(int time){
        synchronized (ThreadSync.class){
        }
}
}

在这种情况下,该类的所有实现对象,一次只能有一个线程访问代码块中的代码

本文转载自:https://github.com/pzxwhc/MineKnowContainer/issues/7

共有 人打赏支持
rainmanqqst
粉丝 7
博文 59
码字总数 32306
作品 0
浦东
程序员
并发编程笔记二:synchronized锁住了谁?

在并发编程中要使用到关键字,当我们用关键字修饰一个方法时,代表着一个锁(Lock),那么这个锁的对象是什么,也就是它锁住了谁? 的使用情况大概就是下面几种: synchronized修饰非静态方法...

binxin5108
2016/12/23
13
0
Java对象锁和类锁全面解析(多线程synchronized关键字)

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚...

tantexian
2016/12/19
16
0
synchronized 之 对象锁 和 类锁

一、synchronized(object) 如果object没有被加锁,则获取object的锁;如果object已经被加锁则等待object的锁被释放。 二、需要加锁的情景 多线程共享同一资源会引起线程安全的情况下,才需要...

MyOldTime
09/21
0
0
Java 同步方式 (1) —— synchronized

前两篇博客 ArrayList 用法比较 和 String 用法比较,介绍过程中都提及到了同步和线程安全的问题,本篇将重点介绍Java同步方式之一的synchronized用法。 线程安全 线程安全,是指每次运行结果...

长平狐
2013/01/06
75
0
Java synchronized使用

先看测试方法: 多个线程同时访问多个synchronized方法: 输出如下: 由此可以看出:多线程在同一时刻只能有一个线程访问对象的synchronized方法 多线程同时访问一个synchronized方法,一个非...

清尘V
2016/05/11
55
0

没有更多内容

加载失败,请刷新页面

加载更多

arcgis jsapi接口入门系列(2):图层基础操作

//图层相关demo layerFun: function () { //获取地图的所有图层(不包括的图层类型:底图图层(basemaps)) let layers = this.map.layers; ...

canneljls
17分钟前
1
0
MySQL忘记root密码--不重启mysqd重置root密码

先提个问题:如何不重启mysqld,且没有权限修改用户账号和权限的情况下,如何重新设置root密码?不知道没关系,在此之前我也是不知道如何操作的,先看看下面的几种重置root密码的方法。 1、s...

IT--小哥
19分钟前
1
0
php7不再支持HTTP_RAW_POST_DATA,微信支付$GLOBALS[‘HTTP_RAW_POST_DATA’]获取不到数据,

升级到php7后, 发现旧的web系统有些问题, 查看后才发现原来是php7不再支持HTTP_RAW_POST_DATA 原来系统一些地方, 使用$GLOBALS[‘HTTP_RAW_POST_DATA’]来获取数据, 在php7里无法获取了 ...

15834278076
20分钟前
1
0
Android--拨打电话功能

Intent callIntent = new Intent(); callIntent.setAction(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + "4008823823")......

lanyu96
27分钟前
1
0
iOS多种刷新样式、音乐播放器、仿抖音视频、旅游App等源码

iOS精选源码 企业级开源项目,模仿艺龙旅行App 3D立体相册,可以旋转的立方体 横竖屏切换工具,使用陀螺仪检测手机设备方向,锁屏状... Swift版Refresh(可以自定义多种样式)架构方面有所优化...

Android爱开源
31分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部