1樓:希文耀
就是在發出乙個功能呼叫時,在沒有得到結果之前,該呼叫就不返回,同時其它執行緒也不能呼叫這個方法。按照這個定義,其實絕大多數函式都是同步呼叫。但是一般而言,我們在說同步、非同步的時候,特指那些需要其他部件協作或者需要一定時間完成的任務。
例如window api函式sendmessage。該函式傳送乙個訊息給某個視窗,在對方處理完訊息之前,這個函式不返回。<>
當對方處理完畢以後,該函式才把訊息處理函式所返回的lresult值返回給呼叫者。在一般情況下,建立乙個執行緒是不能提高程式的執行效率的,所以要建立多個執行緒。但是多個執行緒同時執行的時候可能呼叫執行緒函式,在多個執行緒同時對同乙個記憶體位址進行寫入,由於cpu時間排程上的問題,寫入資料會被多次的覆蓋,所以就要使執行緒同步。
非同步雙方不需要共同的時鐘,也就是接收方不知道傳送方什麼時候傳送,所以在傳送的資訊中就要有提示接收方開始接收的資訊,如開始位,同時在結束時有停止位。與同步相對應,非同步指的是讓cpu暫時擱置當前請求的響應,處理下乙個請求,當通過輪詢或其他方式得到**通知後,開始執行。<>
非同步通訊也可以是以幀作為傳送的單位。接收端必須隨時做好接收幀的準備。這時,幀的首部必須設有一些特殊的位元組合,使得接收端能夠找出一幀的開始。
這也稱為幀定界。幀定界還包含確定幀的結束位置。這有兩種方法。
一種是在幀的尾部設有某種特殊的位元組合來標誌幀的結束。或者在幀首部中設有幀長度的欄位。
2樓:文人青
同步執行緒是單一執行緒,效率低,時間長。非同步執行緒是多個執行緒,效率高,時間大大縮短。所以,同步比較簡單,而非同步相對複雜很多。
3樓:wally小童鞋
同步執行緒可當做單執行緒,非同步執行緒是標準的多執行緒。同步執行緒只要客戶端請求了,在伺服器沒有反饋資訊之前是乙個執行緒阻塞狀態(就是假死狀態,不能操作其他方法)。非同步執行緒在客戶端請求時,可以執行其他執行緒,並且在把這個執行緒存放在他的佇列裡面,有序的執行。
可以設定執行緒的數量,當超過最大時會顯示等待狀態)。
4樓:原是北方姑娘
對於同步執行緒,傳送請求後需要等待返回,等待返回後才能繼續傳送下乙個請求。對於非同步執行緒,不需要等待返回的,在傳送乙個請求後隨時可傳送下乙個請求。
執行緒同步和非同步的區別
5樓:匿名使用者
簡單理解,執行緒同步是多個執行緒會同時訪問乙個公共資源,從而產生競態條件,因此需要用同步機制使每次同時僅有乙個或有限個能訪問共享資源,其他執行緒需要等待。
「非同步」、「多執行緒」是不是同一概念?
6樓:網友
不是乙個概念。
非同步和同步操作相對。以通訊程式為例,假定我們執行接收操作,在資料未到達之前,程式一直等著,我們稱為同步操作;如果執行操作後立刻返回(此時資料未到),在資料真正到達後,系統再給出通知,這就是非同步方式。
多執行緒和單執行緒相對。程式可以同時執行幾個任務。例如有個程式有大量的計算工作,同時介面上還要顯示和響應使用者操作。
如果在乙個執行緒中執行,大量資料的連續計算可能會造成使用者介面操作響應遲緩;如果分開在兩個獨立執行緒中執行,乙個負責處理介面上使用者的操作,另乙個負責在後臺處理大量的資料,介面的響應就不會受計算影響。
7樓:網友
不是,概念有些交叉而已。
非同步是把一些操作轉入後臺執行緒執行,不影響主執行緒的執行。
多執行緒是程式啟動多個執行緒,完成不同的任務需求。
執行緒同步有幾種實現方法,都是什麼?
8樓:123456奮鬥
同步的實現方面有兩種,分別是synchronized,wait與notify wait():使乙個執行緒處於等待狀態,並且釋放所持有的物件的lock。
sleep():使乙個正在執行的執行緒處於睡眠狀態,是乙個靜態方法,呼叫此方法要捕捉interruptedexception異常。
notify():喚醒乙個處於等待狀態的執行緒,注意的是在呼叫此方法的時候,並不能確切的喚醒某乙個等待狀態的執行緒,而是由jvm確定喚醒哪個執行緒,而且不是按優先順序。
allnotity():喚醒所有處入等待狀態的執行緒。
9樓:臺俠騫
答:多執行緒有兩種實現方法,分別是繼承thread類與實現runnable介面。
同步的實現方面有兩種,分別是synchronized,wait與notify
程序和執行緒的區別,程序和執行緒的區別是什麼?
執行緒與程序的區別歸納 b.通訊 程序間通訊ipc,執行緒間可以直接讀寫程序資料段 如全域性變數 來進行通訊 需要程序同步和互斥手段的輔助,以保證資料的一致性。c.排程和切換 執行緒上下文切換比程序上下文切換要快得多。d.在多執行緒os中,程序不是乙個可執行的實體。程序和執行緒的區別是什麼?1 功能...
網路程式設計裡的同步和非同步有啥區別的
網路程式設計中,同步的意思是說,進行收發資料,等到資料真正傳送出去或者接受到,才返回 而非同步的意思是,可以把資料傳送到緩衝區立即返回,而傳送成功的訊息是通過事件通知的。非同步可以騰出更多的cpu來處理其他事情,所以非同步的方式比較靈活。執行緒同步是指,多個執行緒協同完成一件工作,一個執行緒需要等待...
非同步伺服電機和同步伺服電機的區別
區別 1 控制速度不同。同步伺服電機控制速度快,從發動到額外轉速只需幾毫秒,而相同情況下非同步電機卻需求幾秒鐘。2 發動扭矩不同。同步伺服電機較非同步伺服電機發動扭矩大,能夠帶動大慣量的物體進行運動。3 功率密度不同。相同功率規模下,同步伺服電機能夠把體積做得更小 重量做得更輕。4 運轉效率不同。同...