同步就是協同步調,按預定的先後次序進行執行。如:你說完,我再說。
"同"字從字面上容易理解為一起動作
其實不是,"同"字應是指協同、協助、互相配合。
如程序、執行緒同步,可理解為程序或執行緒a和b一塊配合,a執行到一定程度時要依靠b的某個結果,於是停下來,示意b執行;b執行,再將結果給a;a再繼續操作。
解決執行緒同時修改全域性變數的方式
對於上一小節提出的那個計算錯誤的問題,可以通過執行緒同步來進行解決
思路,如下:
系統呼叫t1,然後獲取到g_num的值為0,此時上一把鎖,即不允許其他執行緒操作g_num
t1對g_num的值進行+1
t1解鎖,此時g_num的值為1,其他的執行緒就可以使用g_num了,而且是g_num的值不是0而是1
同理其他執行緒在對g_num進行修改時,都要先上鎖,處理完後再解鎖,在上鎖的整個過程中不允許其他執行緒訪問,就保證了資料的正確性
7 1 同步的概念與執行緒同步
1 同步概念 所謂同步,即同時起步,協調一致。不同的物件,對 同步 的理解方式略有不同。例如 1 裝置同步,是指在兩個裝置之間規定乙個共同的時間參考 2 資料庫同步,是指讓兩個或多個資料庫內容保持一致,或者按需要部分保持一致 3 檔案同步,是指讓兩個或多個資料夾裡的檔案保持一致。4 程式設計中 通訊...
執行緒同步概念
同步即協同步調,按預定的先後次序執行。1.資源共享 獨享資源則不會 2.排程隨機 意味著資料訪問會出現競爭 3.執行緒間缺乏必要的同步機制。以上3點中,前兩點不能改變,欲提高效率,傳遞資料,資源必須共享。只要共享資源,就一定會出現競爭。只要存在競爭關係,資料就很容易出現混亂。所以只能從第三點著手解決...
同步與非同步的概念
請問同步與非同步到底什麼意思啊?我所見的非同步好像就是在主線程開乙個新的執行緒就是非同步了,同步就是單執行緒,是這樣的嗎?2013年7月01日 22 23 xiaozhu1991 1007 00 同步就是在乙個主線程裡,你要做三件事情,a做完了做b,b完了再做c,是順序執行的 非同步就是在乙個主線程...