同步注意事項--類和對象的不同級別同步

類同步和對象同步的區別
理解類和對象的區別
------------------------------------------------------------
類可以有一組實例(類對象)

對象只是一個實例(類的實例)
------------------------------------------------------------
類級別的同步,
   保證該類所有實例對象,使用臨界資源時同步
   低效

對象級別的同步,使用臨界資源時同步
   只是保證本對象內同步
   類的不同實例對象間不保證
------------------------------------------------------------
同步實例(類的對象)包含的方法,使用同步非靜態方法。方法要私有。
    synchronized.....
    由此擴展同步非靜態變量,非靜態塊

同步類包含的方法,使用同步靜態方法。方法要私有。
static synchronized ....
    由此擴展同步靜態變量,靜態塊

------------------------------------------------------------
注意:
     特別是模式中的singleton,容易使用對象級別的同步
------------------------------------------------------------
注意:
     synchronized (this)
     只是一個對象級別的同步
------------------------------------------------------------
技巧:
     一個類級別同步的例子
private static String class_sync = "class_sync";
...
synchronized (class_sync)
------------------------------------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章