posts - 1,  comments - 25,  trackbacks - 0

          實(shí)際上,一些新手對(duì)于對(duì)方法加鎖和對(duì)對(duì)象加鎖還有誤區(qū)。其實(shí)這個(gè)和多線程以及多個(gè)類的實(shí)例是有決定性的關(guān)系的.

          1、synchronized關(guān)鍵字的作用域有二種:

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

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

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

          posted on 2009-03-31 10:56 Daniel 閱讀(220) 評(píng)論(0)  編輯  收藏 所屬分類: CoreJava
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊(cè)

          搜索

          •  

          最新評(píng)論

          主站蜘蛛池模板: 获嘉县| 霍城县| 东乡县| 湟中县| 兴文县| 会宁县| 清涧县| 虎林市| 伊宁县| 枣强县| 万荣县| 广饶县| 天全县| 阿鲁科尔沁旗| 四子王旗| 鞍山市| 葵青区| 彰化市| 定西市| 丹巴县| 乐业县| 友谊县| 松桃| 海丰县| 永顺县| 临泉县| 轮台县| 涪陵区| 青浦区| 泸水县| 永泰县| 铜梁县| 民和| 望江县| 奉节县| 秦皇岛市| 楚雄市| 凤山市| 肥乡县| 吉林市| 敦化市|