关于线程安全
1、线程安全的本质体现在两个方面:
A变量安全:多线程同时运行一段代码。
B线程同步:一个线程还没执行完,另一个线程又进来接着执行。
2、线程安全也可以说是同步,同步就是说要等前面的请求完后,后面的才可以操作。
3、线程不安全可以说是异步,异步不用等待前面的请求。
打个比方,你和你老婆共用一张银行卡。忽然有一天,你去银行取钱,先查了一下余额有2000块钱,你想想取1500吧。刚巧这时候你老婆在网上看上一件800块钱的衣服,趁这功夫买下来了。你不知道钱被扣掉了,于是怎么都取不出来这1500。
线程同步也是这个意思,当多线程运行时,他们可能会调用同样的资源,他们之间也不会互相通气,如果不采取措施,就有可能导致上面的问题。线程不是人,他取不到钱的时候不会就这么走了,要么死等导致deadlock,要么直接崩溃。线程安全就是要实现多线程时运行的结果和单线程时一样。
国泰民安