Java多线程-synchronized

3 篇文章 0 订阅

是什么

synchronized是Java中实现线程同步的一种手段,底层是通过锁机制实现的。

怎么用

对象锁

一个对象实例中,一个线程,一个synchronized方法。
在某个对象实例内,synchronized aMethod(){}可防止多个线程同时访问这个对象的synchronized方法。如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其他线程不能同时访问这个对象任何一个synchronized方法。此时,是可以访问相同类其他对象实例中的synchronized方法。

类锁

该类所有对象中,一个线程,一个synchronized方法。
在某个类的范围内,synchronized static aStaticMethod{}可防止多个线程同时访问这个类中的synchronized static方法。它对类的所有对象实例起作用。

块锁

synchronized关键字作用与方法中某个区域块内的代码时,就是块锁。表示只对这个区域块的资源实行互斥访问。用法是:synchronized(lockObj){/代码块/}。

特性

  1. 不能继承。父类的synchronized方法在子类中并不自动是synchronized修饰的。
  2. 必须是对象。synchronized(lockObj){},此处的lockObj必须是引用类型,不能是基本类型。

参考
https://blog.csdn.net/Evankaka/article/details/44153709
https://www.cnblogs.com/blueSkyline/p/8598099.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值