多线程的安全问题:
产生的原因:
1.线程任务中有处理到共享数据。
2.线程任务中有多条对共享数据的操作。
一个线程在操作共享数据的过程中,其他线程参与了运算,造成了数据的错误。
解决的思想:
只要保证多条操作共享数据的代码在某一段时间段,被一条线程执行,在执行期间不允许其他线程参与运算。
咋保证呢?
用到了同步代码块。
synchronized(对象){
需要被同步的代码。
}
同步在目前情况下保证了一次只能有一个线程在执行。其他线程进不来。
这就是同步锁机制。
好处:解决了多线程的安全问题。
弊端:降低效率。
有可能出现这样一种情况:
多线程安全问题出现后,加入了同步机制,没有想到,安全问题依旧!咋办?
这时肯定是同步出了问题。
只要遵守了同步的前提,就可以解决。
同步的前提:
多个线程在同步中必须使用同一个锁。这才是对多个线程的同步。
关注我的微信公众号(曲健磊的个人随笔),观看更多精彩内容: