當初覺得線程安全是個很大的概念,其實線程同步就是爲了確保線程安全。
當兩個線程共享一個數據的時候,當兩者同時寫這個數據的時候,就會出現寫權力的爭奪問題。
所以爲了避免兩個線程同時操作一個數據的情況,引入了線程同步的概念。
兩個線程同時操作一個數據的情況,也就是線程安全的問題。
清楚了上述概念,再去深入線程同步,思路就清晰了。線程同步的方法請查閱其他大神的文章。
線程安全,也可能不止上述一個問題,以後我要是再碰到了,再來這篇文章補充。
---------------------------------------------------------------------------------
同步和異步:在等待某件事情完成的時候,
1、事情完成不會主動告知你,需要你自己去詢問才知道結果,這個是同步
2、事情完成,主動告知你,這個是異步
同步和異步是得知事件結果的方式不同來定義的。
阻塞和非阻塞:在等待某件事情完成的時候
1、等待的過程,我啥事都不幹就等着這件事完成,這個是阻塞
2、等待的過程,我可以順帶乾點別的事,這個是非阻塞
阻塞和非阻塞跟這件事的結果沒關係,跟等待的過程有關係。
線程a 讓線程b 幹一件事情c
a對b說:“你把c幹了,幹完了告訴我,我去幹點別的事情”
這個時候就是異步非阻塞模式
a對b說:“你把c幹了”。a啥事不幹就盯着b幹c,一會一問 幹完了沒有?,直到b幹完了
這個是同步阻塞
a對b說:“你把c幹了”。然後a去幹別的事情,一會一問 幹完了沒有?直到b幹完了
這個是異步阻塞
-----------------------------------------------------------------------------------------------------