线程安全问题

时间:2020-07-09 22:24:20   收藏:0   阅读:79

线程安全

1.概念

多个线程同时运行同一个实现了Runnable接口的类,程序每次运行结果和单线程运行结果是一样的,其他变量的值和预期的一样,就称之为线程安全的,反之则是不安全的

2.问题演示

如下模拟一个抢票系统:

技术图片

三个线程同时进入if方法,并发情况下先后打印了结果,其他线程还没来得及count--就打印了,所以下次三个线程打印了一样的结果,count--执行了三次,下次循环还是一样的问题,所以出现了以上结果

3.实现线程安全

1.思路

2.7种线程同步机制

3.同步代码块(synchronized)

4.同步方法

5.同步锁(Lock)

实验结果发现:当重入锁ReentrantLock的参数为true,即公平锁时,每个线程是公平的获得执行方法的权力,结果是非常有规律的1,2,3,1,2,3;而当定义为独占锁时,才有随机的效果,每个线程谁先获得锁,就可以执行。

关于锁的小结

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!