文档章节

synchronized的几种用法

pacey
 pacey
发布于 2017/09/05 22:29
字数 321
阅读 4
收藏 0

1、修饰代码块:

        ①synchronized(this) :获取当前对象锁,锁住的是当前整个对象(同同步方法)

        当一个线程已经访问到代码块,其他对象访问该代码块将会被阻塞,直到锁释放。同样,其他线程访问非synchronize块的部分。

        ②synchronized(*.class):获取class对象锁,锁住的是所有对象(同同步静态方法)

        当随意一个对象进去代码块,所有该类对象都不可进去该代码块,将会被阻塞。

        ③两个synchronize之间会有互斥性

2、修饰方法:

        ①同步静态方法:同步静态方法是指对所有同步静态方法进行加锁同步

        ②普通同步方法:同步方法的是指对实例对象本身进行加锁同步

        如果线程拥有同步和非同步方法,则非同步方法可以被多个线程自由访问而不受锁的限制。

        线程可以获得多个重进入(synchronized )锁。比如,在一个对象的同步方法里面调用另外一个对象的同步方法,则获取了两个对象的同步锁。

        

 

3、同步会影响效率,比起同步方法,更好使用同步代码块

© 著作权归作者所有

共有 人打赏支持
pacey
粉丝 0
博文 25
码字总数 8465
作品 0
闵行
synchronized 之 对象锁 和 类锁

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

MyOldTime
09/21
0
0
并发编程笔记二:synchronized锁住了谁?

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

binxin5108
2016/12/23
13
0
精选30道Java多线程面试题

1、线程和进程的区别 2、实现线程有哪几种方式? 3、线程有哪几种状态?它们之间如何流转的? 4、线程中的start()和run()方法有什么区别? 5、怎么终止一个线程?如何优雅地终止线程? 6、T...

java技术栈
2017/08/13
0
0
Synchronized 的用法

Synchronized 的用法 synchronized 是一种同步锁。它修饰的对象有以下几种: 修饰一个代码块,被修饰的代码块称为同步代码块,作用范围是{}里面的代码,作用的兑现是调用这个代码块的对象; ...

u014527323
2017/11/23
0
0
Java 多线程:synchronized 关键字用法(修饰类,方法,静态方法,代码块)

前言 *** 在多线程生成的原因(Java内存模型与i++操作解析) 中,介绍了Java的内存模型,从而可能导致的多线程问题。synchronized就是避免这个问题的解决方法之一。除了 synchronized 的方式...

icanos
2016/07/21
5
0

没有更多内容

加载失败,请刷新页面

加载更多

中国发布域名系统基础软件 “红枫”

9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软件 “红枫(Maple DNS)”。 9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软...

问题终结者
20分钟前
1
0
Shell编程(分发系统介绍、expect远程登录、expect远程执行命令、expect传递参数)

分发系统介绍expect 分发系统expect即分发脚本,是一种脚本语言;通过他可以实现传输,输入命令(上线代码) 应用场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者...

蛋黄_Yolks
25分钟前
1
0
Java Http请求工具类

public static String httpPost(String source, String params) {URL url = null;HttpURLConnection conn = null;OutputStream os = null;String ret = null;try {......

yuewawa
32分钟前
1
0
C++11 智能指针

C++11提供了三个智能指针,std::shared_ptr,std::unique_ptr,std::weak_ptr。最常用的是shared_ptr和unique_ptr。 (1)std::shared_ptr shared_ptr是共享指针,通过在控制块中增加引用计数...

yepanl
33分钟前
1
0
React 服务器渲染原理解析与实践

网盘下载地址 React 服务器渲染原理解析与实践 本套课程,讲解了React中SSR技术的整个搭建思路及流程,完整的从原理上讲清楚了SSR的概念,重点在于讲解编写SSR框架遇到的各种知识点,以及细节...

qq__2304636824
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部