日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机中 什么是同步执行和异步执行?

發(fā)布時間:2025/3/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机中 什么是同步执行和异步执行? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1

當(dāng)您同步執(zhí)行某項任務(wù)時,您將等待它完成,然后再轉(zhuǎn)到另一項任務(wù)。當(dāng)您異步執(zhí)行某項任務(wù)時,您可以在它完成之前轉(zhuǎn)移到另一個任務(wù)。

也就是說,在計算機的上下文中,這轉(zhuǎn)化為在另一個“線程”上執(zhí)行一個進(jìn)程或任務(wù)。線程是作為工作單元存在的一系列命令(代碼塊)。操作系統(tǒng)可以管理多個線程,并在切換到另一個線程之前為線程分配一塊(“片”)處理器時間,以使它能夠完成一些工作。在其核心(請原諒雙關(guān)語),一個處理器可以簡單地執(zhí)行一個命令,它沒有一次做兩件事的概念。操作系統(tǒng)通過將時間片分配給不同的線程來模擬這種情況。

現(xiàn)在,如果在混合中引入多個核/處理器,那么事情實際上可以同時發(fā)生。操作系統(tǒng)可以將時間分配給第一個處理器上的一個線程,然后將相同的時間塊分配給不同處理器上的另一個線程。所有這些都是關(guān)于允許操作系統(tǒng)管理您的任務(wù)的完成,而您可以繼續(xù)您的代碼和做其他事情。

2

同步/異步與多線程無關(guān)。

同步,或同步意思是“連接”,或“依賴”在某種程度上。換句話說,兩個同步任務(wù)必須彼此了解,一個任務(wù)必須以依賴于另一個任務(wù)的方式執(zhí)行,例如等到另一個任務(wù)完成后才開始。

異步意味著它們是完全獨立的,無論是在初始化還是在執(zhí)行中,兩者都不能以任何方式考慮另一個。

同步(一個線程)1 thread -> |<---A---->||<----B---------->||<------C----->|同步(多線程):thread A -> |<---A---->| \ thread B ------------> ->|<----B---------->| \ thread C ----------------------------------> ->|<------C----->| 異步(一個線程):A-Start ------------------------------------------ A-End | B-Start -----------------------------------------|--- B-End | | C-Start ------------------- C-End | | | | | | | |V V V V V V 1 thread->|<-A-|<--B---|<-C-|-A-|-C-|--A--|-B-|--C-->|---A---->|--B-->| 異步(多線程):thread A -> |<---A---->|thread B -----> |<----B---------->| thread C ---------> |<------C--------->|任務(wù)A、B、C的起點和終點<, >人物。用豎直條表示的CPU時間片|

從技術(shù)上講,同步/異步的概念真的與線程無關(guān)。雖然在一般情況下,發(fā)現(xiàn)異步任務(wù)運行在同一個線程上是不尋常的,但它是可能的(參見下面的示例),而且它是共同查找兩個或多個任務(wù)同步執(zhí)行的步驟分開線.。不,同步/異步的概念獨樹一幟是否可以在其他(第一個)任務(wù)完成之前啟動第二個或后續(xù)任務(wù),或者是否必須等待。僅此而已。在哪些線程(或多個線程)、進(jìn)程、CPU,或者確切地說,任務(wù)是在什么硬件上執(zhí)行的任務(wù)是無關(guān)的。事實上,為了說明這一點,我編輯了圖形以顯示這一點。

異步示例。在解決許多工程問題時,軟件被設(shè)計成將整個問題分成多個單獨的任務(wù),然后異步執(zhí)行。反演矩陣或有限元分析問題是一個很好的例子。在計算中,列表排序就是一個例子。例如,快速排序例程將列表分成兩個列表,并通過遞歸調(diào)用自己對每個列表進(jìn)行排序。在上述兩個示例中,這兩個任務(wù)可以(而且經(jīng)常是)異步執(zhí)行。它們不需要放在單獨的線程上。即使是只有一個CPU的機器,也只能編碼一個執(zhí)行線程,以便在第一個任務(wù)完成之前啟動第二個任務(wù)的處理。唯一的標(biāo)準(zhǔn)是一個任務(wù)的結(jié)果不需要作為另一個任務(wù)的輸入。。只要任務(wù)的開始時間和結(jié)束時間重疊(只有當(dāng)兩個任務(wù)的輸出都不需要作為另一個任務(wù)的輸入時才有可能),無論使用多少線程,它們都是異步執(zhí)行的。

同步示例。任何由多個任務(wù)組成的進(jìn)程,其中的任務(wù)必須按順序執(zhí)行,但必須在另一臺機器上執(zhí)行(獲取和/或更新數(shù)據(jù),從金融服務(wù)獲取股票報價等)。如果它位于一個單獨的機器上,那么它就位于一個單獨的線程上,無論是同步線程還是異步線程。

3

簡單類比解釋
同步執(zhí)行

我的老板是個大忙人。他讓我寫代碼。我告訴他:好吧。我開始了,他像禿鷹一樣看著我,站在我身后,從我的肩膀上下來。我說:“伙計,WTF:為什么你不去做點什么,而我做完這件事呢?”

他說:“不,我.在這里等著直到你完成。“這是同步的。

異步執(zhí)行

老板告訴我去做,而不是在那里等我的工作,老板去做其他的工作。當(dāng)我完成我的工作后,我只需向我的老板匯報并說:“我受夠了!”這是異步執(zhí)行。

(聽我的建議:永遠(yuǎn)不要和你身后的老板一起工作。)

參考文章:異步執(zhí)行與同步執(zhí)行,這到底意味著什么?

總結(jié)

以上是生活随笔為你收集整理的计算机中 什么是同步执行和异步执行?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。