posts - 1,  comments - 25,  trackbacks - 0

          實際上,一些新手對于對方法加鎖和對對象加鎖還有誤區。其實這個和多線程以及多個類的實例是有決定性的關系的.

          1、synchronized關鍵字的作用域有二種:

          1)是某個對象實例內,synchronized aMethod(){}可以防止多個線程同時訪問這個對象的synchronized方法(如果一個對象有多個synchronized方法,只要一個線程訪問了其中的一個synchronized方法,其它線程不能同時訪問這個對象中任何一個synchronized方法)。這時,不同的對象實例的synchronized方法是不相干擾的。也就是說,其它線程照樣可以同時訪問相同類的另一個對象實例中的synchronized方法;

          2)是某個類的范圍,synchronized static aStaticMethod{}防止多個線程同時訪問這個類中的synchronized static 方法。它可以對類的所有對象實例起作用。2、除了方法前用synchronized關鍵字,synchronized關鍵字還可以用于方法中的某個區塊中,表示只對這個區塊的資源實行互斥訪問。用法是: synchronized(this){/*區塊*/},它的作用域是當前對象;

          3、synchronized關鍵字是不能繼承的,也就是說,基類的方法synchronized f(){} 在繼承類中并不自動是synchronized f(){},而是變成了f(){}。繼承類需要你顯式的指定它的某個方法為synchronized方法;

          posted on 2009-03-31 10:56 Daniel 閱讀(223) 評論(0)  編輯  收藏 所屬分類: CoreJava
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 灵川县| 岳西县| 安远县| 尉氏县| 徐闻县| 玛曲县| 永登县| 九台市| 永州市| 凌源市| 韶山市| 崇信县| 唐海县| 乌拉特前旗| 万盛区| 萨迦县| 比如县| 铜川市| 日土县| 会理县| 宁蒗| 盈江县| 搜索| 吴堡县| 吉安县| 大洼县| 会东县| 东阳市| 青龙| 平阴县| 阿瓦提县| 韶关市| 星座| 望城县| 嘉峪关市| 禹城市| 灵宝市| 蒲城县| 银川市| 明星| 鄂托克旗|