對于我開始接觸同步異步單線程多線程的概念的時候,都是分別理解同步和異步、單線程和多線程概念,當看到“使用同步方法保證線程安全”時愚昧的理解為那就是單線程咯;于是就陷入了困惑,同步等于單線程嗎?
下面是我自己不成熟的理解,理解的不是很全面,大家僅供參考,看看就好,歡迎批評改正,深刻的理解我會努力學習,日后再整理,多多包容。
同步:等待執行結束之后,再執行;
異步:可以不管不顧,同一時間,一起執行;
單線程:只有一個線程;
多線程:有多個線程;
同步!= 單線程 異步!=多線程
舉例:
1:
多線程:小明可以邊吃飯邊看電視劇 ;
單線程:小明只睡覺;
2:
同步:小明吃飯,小明吃完啦,爸爸吃; 針對飯;
異步:小明吃飯,同時爸爸也吃飯; 針對飯;
3:
小明邊吃飯邊看電視 ,同時,爸爸專心吃飯;
小明:多線程;
爸爸:單線程;
飯:異步 (爸爸和小明一起吃飯,小明爸爸都吃不飽);
4:
小明邊吃飯邊看電視 ,吃完了;爸爸專心吃飯;
小明:多線程;
爸爸:單線程;
飯:同步(爸爸怕小明餓著,先讓小明吃,小明飽了,吃完了,爸爸再吃);
5:
小明邊吃飯邊看電視 ,吃完了;爸爸再吃飯,也是邊吃飯邊看電視;
小明:多線程;
爸爸:多線程;
飯:同步;
電視:異步;
6:小明爸爸同時邊吃飯邊看電視
小明:多線程;
爸爸:多線程;
飯:異步;
電視:異步;
以上幾個例子中小明和爸爸類似于兩個不同進程,飯、電視類似于資源,不同進程訪問不同資源方式不同,同步異步和單線程多線程比較的維度不同。