posts - 1,  comments - 25,  trackbacks - 0

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

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

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

          2)是某個(gè)類(lèi)的范圍,synchronized static aStaticMethod{}防止多個(gè)線程同時(shí)訪問(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í)行互斥訪問(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 閱讀(223) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): CoreJava
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          相冊(cè)

          搜索

          •  

          最新評(píng)論

          主站蜘蛛池模板: 芦山县| 获嘉县| 康平县| 天津市| 无极县| 赞皇县| 隆回县| 区。| 成武县| 潮州市| 金昌市| 晋中市| 伊春市| 尤溪县| 卫辉市| 义乌市| 吴川市| 保康县| 金溪县| 万安县| 苏州市| 泽州县| 新源县| 自贡市| 友谊县| 容城县| 仁怀市| 武城县| 新营市| 甘洛县| 建昌县| 桐梓县| 平顺县| 临高县| 准格尔旗| 昭苏县| 松原市| 涡阳县| 海口市| 甘孜县| 莎车县|