Java多线程锁对象的改变

2017-01-13 15:01:43来源:csdn作者:IsResultXaL人点击

第七城市

在将任何数据类型作为同步锁时,需要注意的是,是否有多个线程同时持有锁对象,如果同时持有相同的锁对象,则这些线程之间就是同步的;如果分别获得锁对象,这些线程之间就是异步的。

这个时候线程A和B持有的锁都是”123”,虽然将锁改成了”456”,但结果还是同步的,因为A和B共同争抢的锁是”123”。

把Thread.sleep(50)放开

这个时候A取得的锁是”123”,过了50毫秒之后B线程取得的锁上”456”。所以是异步的。

友情提示:只要对象不变,即使对象的属性被改变,运行的结果还是同步的。


第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台