一:並發的概念
當有多個線程在操作時,如果系統只有一個CPU,則它根本不可能真正同時執行一個以上的線程,它只能把CPU運行時間划分成若干個時間段,再將時間 段分配給各個線程執行,在一個時間段的線程代碼運行時,其它線程處於掛起狀。這種方式我們稱之為並發(Concurrent)。
二:並行的概念
當系統有一個以上CPU時,則線程的操作有可能非並發。當一個CPU執行一個線程時,另一個CPU可以執行另一個線程,兩個線程互不搶占CPU資源,可以同時進行,這種方式我們稱之為並行(Parallel)。
三:異步編程
異步編程的原則是,讓進程處理多個並發執行的上下文來模擬並行處理方式 。
異步應用使用一個事件循環,當一個事件觸發暫停或恢復執行上下文:只有一個上下文處於活動狀態,上下文之間進行輪替,代碼中的顯示指令告訴事件循環,哪里可以暫停執行,這時,進程將查找其他待處理的線程進行恢復,最終,進程將回到函數暫停的地方繼續運行,從一個執行上下文移到另一個上下文稱為切換。
四:同步編程
# TODO