在run方法前加同步关键字同步的对象是Tread类,而不是线程;
同步块对资源的浪费比同步方法小,同步块的范围越小越好;
AtomicInteger是对int类型的一个封装,提供原子性的访问和更新操作,其原子性操作的实现是基于CAS(compare-and-swap)技术。
https://blog.csdn.net/qweqwruio/article/details/81359887
推荐使用lock,更灵活
在run方法前加同步关键字同步的对象是Tread类,而不是线程;
同步块对资源的浪费比同步方法小,同步块的范围越小越好;
AtomicInteger是对int类型的一个封装,提供原子性的访问和更新操作,其原子性操作的实现是基于CAS(compare-and-swap)技术。
https://blog.csdn.net/qweqwruio/article/details/81359887
推荐使用lock,更灵活