原 跟着波波老师学多线程高并发(六)线程安全
版权声明:本文为博主原创文章,请尊重他人的劳动成果,转载请附上原文出处链接和本声明。
本文链接:https://www.91mszl.com/zhangwuji/article/details/1120
答:多个线程同时共享一个全局变量,在进行写操作的时候,可能会导致数据错误,这种现象叫做线程安全。在做读操作的时候不会产生线程安全问题,多个线程共享一个局部变量的时候也不会产生线程安全问题。
使用synchronize的条件
(1)必须要有两个以上的线程。需要发生同步。
(2)多个线程进行同步,必须用同一把锁。
(3)保证同时只有一个线程在执行。
同步原理
(1)有一个线程已经拿到锁了,其他线程有cpu执行权,一直排队,等待拿到锁的线程释放锁。
(2)拿到锁的线程释放锁后,其他线程开始获取锁,进入同步代码中去。
(3)锁的资源竞争。
锁在什么时候释放?
代码执行完成或代码抛出异常。
同步的缺点:
(1)代码执行效率很低。
(2)产生死锁问题。
synchronize和lock的区别:synchronize是自动锁(开启锁,释放锁),lock是手动锁。
2019-11-19 19:35:03 阅读(1186)
名师出品,必属精品 https://www.91mszl.com
博主信息