社区
Java SE
帖子详情
synchronized代码块中的参数必须是对象吗
acdsee66
2008-10-17 11:21:55
synchronized代码块中的参数必须是对象吗?可不可以是某个类的属性,synchronized关键字加在方法外面和里面有什么区别?能给举几个例子说明吗?
...全文
395
4
打赏
收藏
synchronized代码块中的参数必须是对象吗
synchronized代码块中的参数必须是对象吗?可不可以是某个类的属性,synchronized关键字加在方法外面和里面有什么区别?能给举几个例子说明吗?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cileen
2010-05-07
打赏
举报
回复
学习 学习
sunyujia
2008-10-18
打赏
举报
回复
无论是初学者还是非初学者都强烈建议用同步代码块
写方法名前,有时候就忘了不同对象间的同步了,很容易忘。
huoyin
2008-10-17
打赏
举报
回复
本质上都是对象,只是表现形式不一样
放在方法名前,表示同步this对象,放在方法中就是同步其指定的对象
一头头
2008-10-17
打赏
举报
回复
synchronized(变量)
java的
synchronized
1.
synchronized
用来排它。包括
synchronized
方法和
synchronized
代码块
。
synchronized
方法: public
synchronized
void fun(){}
synchronized
代码块
.... synchron
synchronized
锁
对象
终极解析:静态同步方法与普通方法有何不同?
在Java并发编程
中
,
synchronized
是保障线程安全最核心的机制,但很多开发者只知其用法,却忽略了锁
对象
对互斥范围的本质影响。静态同步方法锁的是Class
对象
,而普通同步方法锁的是当前实例this,二者在JVM
中
是完全不同的监视器。理解这一原理,有助于避免因锁
对象
选错而导致的线程安全失效问题,例如用实例锁保护静态全局计数器时,一旦存在多实例调用,保护便形同虚设。同时,可重入机制、字节码标志位以及类锁与实例锁的并行关系,也直接决定了并发场景下的行为表现。在实际开发
中
,无论是构建全局缓存、统计工具,还是
Synchronized
关键字浅学(学习)
synchronized
在代码
中
: 1、加在方法前面: 等价于
synchronized
(this);this是实例本身,因此作用范围就是当前类 2、加在静态的方法前面: 作用于当前的类
对象
3、加在
代码块
里 锁的就是内部的
代码块
。 值得注意的是,该关键字是不能被子类继承的,应为这并不是方法定义的一部分,如果父类A当
中
的某个方法使用了这个关键字,并且子类B覆盖了这个方法,那么实际上如果调用B的该方法,是不能实现该方法同步的,B
必须
显现的使用这个关键字才能起作用。当然因为A
中
是有该关键字修饰,所以
Java多线程编程:
synchronized
关键字详解与实战
在Java并发编程
中
,线程同步是确保数据一致性的核心技术。
synchronized
作为JVM内置的互斥锁机制,通过
对象
监视器(Monitor)实现线程互斥访问。其底层基于
对象
头的Mark Word实现锁状态标记,并包含偏向锁、轻量级锁到重量级锁的智能升级过程。从技术价值看,
synchronized
既能解决竞态条件问题,又能通过JDK6+的锁优化保持较好性能。典型应用场景包括电商库存扣减、计数器实现等需要线程安全的临界区保护。针对高并发场景,合理运用锁粗化、锁消除等JVM优化策略,结合专用锁
对象
和同步
代码块
等
Java多线程6:
Synchronized
锁
代码块
(this和任意
对象
)
一、
Synchronized
(this)锁
代码块
用关键字
synchronized
修饰方法在有些情况下是有弊端的,若是执行该方法所需的时间比较长,线程1执行该方法的时候,线程2就
必须
等待。这种情况下就可以使用
synchronized
同步该方法
中
会引起线程安全的那部分代码,其余不会引起线程安全的就不需要同步,这部分代码就可以多线程并发执行,减少时间提高效率。 举例:多线程执行同一个方法...
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章