java线程加上同步代码块 这样限制后 不是同一时刻只有一个线程在跑吗

java线程加上同步代码块 这样限制后 不是同一时刻只有一个线程在跑吗,第1张

一般只有需要多个线程共享的变量才需要加同步锁,这样保持了数据的一致性。

从微观上来看,即时不加同步代码块,同一时刻也只有一个线程在跑,只不过它们交替运行,间隔时间几乎可以忽略,所以看上去是同步的。同理加了同步代码块,只是增加了一个线程访问某一块的等待时间,这种等待时间几乎可以忽略不计,但是对数据的一致性来说又是非常重要的。

不知道这么说楼主能不能理解。

synchronized(这里的对象你看成一道门) {

这里是一个人进来了,把门反锁了

需要同步 *** 作的代码

这里是里面的人事情做完了,出去了,门开着其他人可以进了

}

至于怎么锁的,这是java和jvm的规定和实现细节,作为普通程序员没必要深入那么多。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11723895.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存