成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談同步方法與同步代碼塊的區別

開發 后端
當JVM執行一個方法時,執行中的線程識別該方法的method_info結構是否有ACC_SYNCHRONIZED標記設置,然后它自動獲取對象的鎖,調用方法,最后釋放鎖。如果有異常發生,線程自動釋放鎖。

當JVM執行一個方法時,執行中的線程識別該方法的method_info結構是否有ACC_SYNCHRONIZED標記設置,然后它自動獲取對象的鎖,調用方法,最后釋放鎖。如果有異常發生,線程自動釋放鎖。

同步化一個方法塊會超過JVM對獲取對象鎖和異常處理的內置支持,要求以字節代碼顯式寫入功能。如果使用同步方法讀取一個方法的字節代碼,就會看到有十幾個額外的操作用于管理這個功能。

Java代碼

  1. public class Sync {     
  2.     private int i;     
  3.     
  4.     public synchronized int synchronizedMethodGet() {     
  5.         return i;     
  6.     }     
  7.     
  8.     public int synchronizedBlockGet() {     
  9.         synchronizedthis ) {     
  10.             return i;     
  11.         }     
  12.     }     
  13.     
  14. }   

 

反編譯出的字節碼:

Java代碼

  1. D:\Java\jdk1.6.0_02\bin>javap -c Sync     
  2. Compiled from "Sync.java"    
  3.     
  4. public class Sync extends java.lang.Object{     
  5. public Sync();     
  6.   Code:     
  7.    0:   aload_0     
  8.    1:   invokespecial   #1//Method java/lang/Object."":()V     
  9.    4:   return    
  10.     
  11. public synchronized int synchronizedMethodGet();     
  12.   Code:     
  13.    0:   aload_0     
  14.    1:   getfield        #2//Field i:I     
  15.    4:   ireturn     
  16.     
  17. public int synchronizedBlockGet();     
  18.   Code:     
  19.    0:   aload_0     
  20.    1:   dup     
  21.    2:   astore_1     
  22.    3:   monitorenter     
  23.    4:   aload_0     
  24.    5:   getfield        #2//Field i:I     
  25.    8:   aload_1     
  26.    9:   monitorexit     
  27.    10:  ireturn     
  28.    11:  astore_2     
  29.    12:  aload_1     
  30.    13:  monitorexit     
  31.    14:  aload_2     
  32.    15:  athrow     
  33.   Exception table:     
  34.    from   to  target type     
  35.      4    10    11   any     
  36.     11    14    11   any     
  37.     
  38. }  

原文鏈接:http://wen866595.javaeye.com/blog/974851

【編輯推薦】

  1. Java線程同步的優先級介紹
  2. Java線程同步問題在實踐中尋找答案
  3. Java線程同步引用基本代碼介紹
  4. Java線程同步如何才能排除阻塞
  5. Java線程同步鎖解決共享數據安全
責任編輯:金賀 來源: JavaEye博客
相關推薦

2009-08-21 10:28:21

C#異步方法C#同步方法

2020-08-31 07:00:00

數據庫數據庫同步

2009-06-29 18:32:52

Java多線程Synchronize

2019-08-13 15:52:34

數據庫同步遷移

2014-11-25 09:30:26

Moxtra移動協同

2009-06-29 18:44:28

Java多線程Synchronize同步變量

2010-11-08 11:22:21

SQL Server同

2013-01-08 15:11:19

OpenStackKVM

2011-06-24 17:23:18

主服務器從服務器同步

2022-09-12 07:17:20

redis命令redissynce

2011-01-14 13:50:37

2025-06-30 00:01:00

Node.js?Go線程

2009-12-04 10:43:53

VS部署

2009-08-04 17:57:41

C#線程同步死鎖

2021-06-02 21:13:44

Github配置項目

2019-11-24 19:17:06

MySQL異步復制全同步復制

2013-03-08 09:33:25

JavaScript同步異步

2014-07-24 10:00:21

2023-11-03 13:41:16

數據技術

2010-03-17 15:34:09

Java線程同步引用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: a精品视频| 91天堂| 伊色综合久久之综合久久 | 黄频视频 | 中文在线а√在线8 | 久久久久久国产精品免费免费狐狸 | 亚洲精品国产电影 | 精品一区二区久久久久久久网站 | 午夜性色a√在线视频观看9 | 久久机热 | 国产精品第2页 | 黄色一级大片视频 | 成人中文字幕在线 | 午夜理伦三级理论三级在线观看 | 欧美成人手机视频 | 国产精品视频久久久久久 | 日韩在线一区二区 | 看av网址| 免费激情网站 | 亚洲免费成人 | 欧美一a一片一级一片 | 欧美精品1区2区3区 免费黄篇 | 亚洲精品视频免费观看 | 国产成人精品一区二区三区网站观看 | 波多野结衣亚洲 | 影视一区 | 亚洲视频 欧美视频 | 久在线精品视频 | 亚洲iv一区二区三区 | 精品国产一区二区三区久久久蜜月 | 欧美日韩亚洲在线 | 免费黄色在线 | 理论片午午伦夜理片影院 | 日韩精品专区在线影院重磅 | 久久久久国产精品一区二区 | 久久精品国产清自在天天线 | 中文字幕久久精品 | 91视频进入 | 欧美精品一区二区免费视频 | 国产成人福利视频在线观看 | 久草免费电影 |