posts - 1,  comments - 25,  trackbacks - 0

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

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

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

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

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

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

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          相冊(cè)

          搜索

          •  

          最新評(píng)論

          主站蜘蛛池模板: 依兰县| 铁力市| 海口市| 张北县| 常州市| 班玛县| 秦安县| 长海县| 河南省| 绥德县| 达孜县| 长岭县| 文昌市| 原阳县| 安远县| 南康市| 赤峰市| 湘乡市| 无为县| 北宁市| 镇康县| 台山市| 开封县| 霍州市| 仁寿县| 吴江市| 渝北区| 辉县市| 酒泉市| 洪江市| 吉林市| 江安县| 扎兰屯市| 扎赉特旗| 丘北县| 中西区| 固阳县| 河津市| 阿拉善左旗| 双鸭山市| 云霄县|