在其他物件上同步

2021-09-07 03:55:13 字數 498 閱讀 3190

synchronized 塊必須給定乙個在其上進行同步的物件,並且最合理的方式是,使用其方法正在被呼叫的當前物件:synchronized(this).

在此種方式中,如果獲得了synchronized塊上同步鎖,那麼該物件其他的synchronized方法和臨界區就不能被呼叫。因此,如果再this上同步,

臨界區的效果就會直接縮小在同步的範圍內。

但有時必須在另乙個物件上同步,如果這麼做,就必須確保所有相關的任務都是在物件上同步的。例如下面例子倆個任務可以同時進入同乙個

物件,只要此物件上的方法在不同的鎖上同步即可:

public class dualsynch .start();   

ds.g();   

輸出如下:

g()f()

f()f()

f()f()

g()g()

g()g()

結論:通過輸出可以看出,倆個方式在同時執行,因此任何乙個方法都沒有因為對另乙個方法的同步而被阻塞。

關於 C 中 程式在其他裝置上執行 的思考

原來一直頭疼於用 c 11 標準編寫的程式在僅裝有 dev 的電腦上無法執行,因而思考如何讓自己的程式在別人的裝置上執行。進過資料的查詢以及自身的實踐,總結出了以下方法 將除錯的 dubug 改為 release,然後執行程式。結束之後在該項目的資料夾中存在乙個資料夾 release,複製出其中的 ...

vs2013編譯的程式在其他機器上執行的環境設定

vs2013編譯的程式在其他沒有安裝vs2013的機器上執行會有問題,網上有很多解決方法,如果你還沒有解決,可以嘗試以下方法,這是我在反覆崩潰,煩躁測試後得到的解決方法。1.安裝vs2013 執行包 vcredist x64.exe 如果這個時候還是不能正常執行,請不要和我一樣崩潰,試試我的解決方法...

FPGA在其他領域的應用 二

計算機和儲存領域 計算機技術和儲存技術發展迅猛。如今,雲計算正在實現對傳統 it 功能和全新功能的整合。例如,許多大型資料中心目前正在同時提供傳統的 it 服務以及新型的資料分析服務。因此,這些大型資料中心需要使用高效的伺服器和儲存系統。利用頻率調節來提公升效能的方式已成歷史,傳統的 cpu 技術已...