同步的編程模型
簡單描述:
一個線程獲得了一個任務(wù)剥懒,然后去執(zhí)行這個任務(wù),
當(dāng)這個任務(wù)執(zhí)行完畢后,才能執(zhí)行接下來的另外一個任務(wù)稳衬。
注意:
這個線程不能將當(dāng)前的任務(wù)放置在一邊,轉(zhuǎn)而去做另外一個任務(wù)坐漏。
單線程的情況:
一個線程宋彼,相當(dāng)于一個人,這個人做完一個任務(wù)仙畦,再去做下一個任務(wù)输涕。
這個人有兩個任務(wù),第一個是吃水果慨畸,第二個是寫文章莱坎。
那么這個人是先去吃一堆水果,然后再去寫文章寸士。
多線程的情況:
異步編程模型
它和同步的編程模型有很大的區(qū)別:
一個線程中執(zhí)行一堆任務(wù),
這個線程可以自由的保存弱卡,恢復(fù)任務(wù)的狀態(tài)乃正。
也就是,它有能力穿插的執(zhí)行任務(wù)婶博。
單線程的情況:
一個線程,相當(dāng)于一個人,這個人交替的做任務(wù)名党。
這個人有兩個任務(wù)叹阔,第一個是吃水果,第二個是寫文章传睹。
那么這個人是先去吃兩個水果耳幢,然后再去寫文章,過一會再去吃水果欧啤,然后再來寫文章睛藻。
多線程的情況:
幾個人互相協(xié)作,處理這一堆任務(wù)
異步編程的好處
實用:
利用異步編程修档,不阻塞當(dāng)前的ui線程,用戶體驗很好府框。
性能:
一個程序的性能是非常重要的吱窝,這個不言而喻。
當(dāng)我們執(zhí)行耗時任務(wù)(讀寫磁盤迫靖,網(wǎng)絡(luò)請求)的時候院峡,大約70%的時間都浪費在等待結(jié)果上面。
利用異步編程系宜,在這浪費的70%的時間內(nèi)照激,我們可以愉快的保存當(dāng)前任務(wù)狀態(tài),去執(zhí)行其他任務(wù)盹牧,等那個任務(wù)執(zhí)行完成俩垃,有了結(jié)果,我們切換到那個任務(wù)的執(zhí)行上汰寓。最大化的利用這個線程口柳。