国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java并發

瀏覽:11日期:2022-09-06 13:37:32
>synchronizedsynchronized 關鍵字,它包括兩種用法:synchronized 方法和 synchronized 塊1>synchronized 方法:通過在方法聲明中加入 synchronized關鍵字來聲明 synchronized 方法。 public synchronized void accessVal(int newVal); synchronized 方法控制對類成員變量的訪問:每個類實例對應一把鎖,每個 synchronized 方法都必須獲得調用該方法的類實例的鎖方能執行,否則所屬線程阻塞,方法一旦執行,就獨占該鎖,直到從該方法返回時才將鎖釋放,此后被阻塞的線程方能獲得該鎖,重新進入可執行狀態。這種機制確保了同一時刻對于每一個類實例,其所有聲明為 synchronized 的成員函數中至多只有一個處于可執行狀態(因為至多只有一個能夠獲得該類實例對應的鎖),從而有效避免了類成員變量的訪問沖突(只要所有可能訪問類成員變量的方法均被聲明為 synchronized) 在 Java 中,不光是類實例,每一個類也對應一把鎖,這樣我們也可將類的靜態成員函數聲明為synchronized ,以控制其對類的靜態成員變量的訪問。synchronized 方法的缺陷:若將一個大的方法聲明為synchronized 將會大大影響效率,典型地,若將線程類的方法 run() 聲明為synchronized ,由于在線程的整個生命期內它一直在運行,因此將導致它對本類任何 synchronized 方法的調用都永遠不會成功。當然我們可以通過將訪問類成員變量的代碼放到專門的方法中,將其聲明為 synchronized ,并在主方法中調用來解決這一問題,但是 Java 為我們提供了更好的解決辦法,那就是 synchronized 塊。 2> synchronized 塊:通過 synchronized關鍵字來聲明synchronized 塊。語法如下:synchronized(syncObject) { //允許訪問控制的代碼 } synchronized 塊是這樣一個代碼塊,其中的代碼必須獲得對象 syncObject (如前所述,可以是類實例或類)的鎖方能執行,具體機制同前所述。由于可以針對任意代碼塊,且可任意指定上鎖的對象,故靈活性較高。 對synchronized(this)的一些理解 : 一、當兩個并發線程訪問同一個對象object中的這個synchronized(this)同步代碼塊時,一個時間內只能有一個線程得到執行。另一個線程必須等待當前線程執行完這個代碼塊以后才能執行該代碼塊。 二、然而,當一個線程訪問object的一個synchronized(this)同步代碼塊時,另一個線程仍然可以訪問該object中的非synchronized(this)同步代碼塊。 三、尤其關鍵的是,當一個線程訪問object的一個synchronized(this)同步代碼塊時,其他線程對object中所有其它synchronized(this)同步代碼塊的訪問將被阻塞。
標簽: Java
相關文章:
主站蜘蛛池模板: 国产精品国产三级国产a | 欧美另类丝袜 | 精品乱人伦一区二区 | 欧美亚洲国产片在线观看 | 香港三澳门三日本三级 | 精品国产免费一区二区三区 | 色视频在线观看视频 | 成人精品免费视频 | 黄色网址在线免费看 | 在线观看免费黄色网址 | 亚洲国产成人精品一区二区三区 | 免费看特级毛片 | 亚洲精品成人a | 日本加勒比高清一本大道 | 农村寡妇偷毛片一级 | 日产一区2区三区有限公司 日产一区两区三区 | 免费观看一级特黄三大片视频 | 久久精品青草社区 | 狠狠色综合网站久久久久久久 | 日本三级香港三级乳网址 | 亚洲精品视频在线看 | 中文字幕乱码中文乱码综合 | 亚洲美女色成人综合 | 麻豆19禁国产青草精品 | 在线91精品亚洲网站精品成人 | 欧美一二区| 成人亚洲天堂 | 波多野结衣中文视频 | 国产激情一区二区三区四区 | 亚洲国产国产综合一区首页 | 国产视频中文字幕 | 国产亚洲欧洲精品 | 日本国产欧美 | 草草国产成人免费视频 | 免费中文字幕一级毛片 | 日本乱理伦片在线观看网址 | 热伊人99re久久精品最新地 | 日韩经典欧美精品一区 | 免费观看女人一摸全是水 | 亚洲国产字幕 | 欧美午夜视频 |