
从微观上来看,即时不加同步代码块,同一时刻也只有一个线程在跑,只不过它们交替运行,间隔时间几乎可以忽略,所以看上去是同步的。同理加了同步代码块,只是增加了一个线程访问某一块的等待时间,这种等待时间几乎可以忽略不计,但是对数据的一致性来说又是非常重要的。
不知道这么说楼主能不能理解。
synchronized(这里的对象你看成一道门) {这里是一个人进来了,把门反锁了
需要同步 *** 作的代码
这里是里面的人事情做完了,出去了,门开着其他人可以进了
}
至于怎么锁的,这是java和jvm的规定和实现细节,作为普通程序员没必要深入那么多。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)