成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

Java Thread in JVM

瀏覽:7日期:2024-07-01 09:45:18
內容: 本文從JVM的角度探討Java Thread的語法和編譯結果。如果需要獲得第一手資料,請直接訪問以下的資源——Java語言規范,Java虛擬機規范中有關線程的定義說明。本文旨在介紹這些比較重要的線程相關的規范,基本上不另作發揮。(除了提到微軟的“公共語言基礎構造。:-)Java Language Specificationhttp://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#30531JVM Specificationhttp://java.sun.com/docs/books/vmspec/2nd-edition/html/Compiling.doc.html#6530http://java.sun.com/docs/books/vmspec/2nd-edition/html/Instructions2.doc9.htmlhttp://java.sun.com/docs/books/vmspec/2nd-edition/html/Threads.doc.htmlMicrosoft CLI -- Common Language Infrastructure (sorry, off the topic :-)http://msdn.microsoft.com/net/ecma/1.synchronized method 的java語言規范詳見http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#30531。用synchronized關鍵字修飾的方法,分為兩種情況:(static)靜態方法,和實例方法。(static)靜態方法的“鎖是這個擁有這個方法的對象的Class對象;實例方法的“鎖是this,擁有這個方法的當前對象實例。怎么理解這段話,看一看下面的例子就明白了。下面兩段代碼的效果完全相同。代碼1 ==代碼2。代碼1:class Test {int count;synchronized void bump() { count++; }static int classCount;static synchronized void classBump() {classCount++;}}代碼2:class BumpTest {int count;void bump() {synchronized (this) {count++;}}static int classCount;static void classBump() {try {synchronized (Class.forName('BumpTest')) {classCount++;}} catch (ClassNotFoundException e) {...}}}2.synchronized關鍵字的編譯結果這一節,我們來看一看synchronized關鍵字編譯之后的java虛擬機指令是什么。如果需要第一手資料,請參見java虛擬機規范相關的部分http://java.sun.com/docs/books/vmspec/2nd-edition/html/Compiling.doc.html#6530這段規范里面講到,java虛擬機規范提供兩條指令,monitorenter和monitorexit,來支持線程。但是對于上一節講到的,用synchronized修飾的方法來說,并不使用這兩個方法,而只是簡單地用ACC_SYNCHRONIZED標志修飾。虛擬機調用方法的時候會檢查這個標志,進行同步。synchronized語句的編譯結果對應monitorenter和monitorexit兩條指令。比如,下面的代碼:void onlyMe(Foo f) {synchronized(f) {doSomething();}}的編譯結果是Method void onlyMe(Foo)0 aload_1 // Push f 1 astore_2 // Store it in local variable 22 aload_2 // Push local variable 2 (f)3 monitorenter // Enter the monitor associated with f4 aload_0 // Holding the monitor, pass this and...5 invokevirtual #5 // ...call Example.doSomething()V8 aload_2 // Push local variable 2 (f)9 monitorexit // Exit the monitor associated with f10 return // Return normally11 aload_2 // In case of any throw, end up here12 monitorexit // Be sure to exit monitor...13 athrow // ...then rethrow the value to the invoker3.monitorenter和monitorexit詳見http://java.sun.com/docs/books/vmspec/2nd-edition/html/Instructions2.doc9.htmlmonitorenter定義的一段節錄:Operation : Enter monitor for objectOperand Stack : ..., objectref ... Description :The objectref must be of type reference.Each object has a monitor associated with it. The thread that executes monitorenter gains ownership of the monitor associated with objectref. If another thread already owns the monitor associated with objectref, the current thread waits until the object is unlocked, then tries again to gain ownership. If the current thread already owns the monitor associated with objectref, it increments a counter in the monitor indicating the number of times this thread has entered the monitor. If the monitor associated with objectref is not owned by any thread, the current thread becomes the owner of the monitor, setting the entry count of this monitor to 1.這段話的意思是說,monitorenter操作的目標一定要是一個對象,類型是reference。Reference實際就是堆里的一個存放對象的地址。每個對象(reference)都有一個monitor對應,如果有其它的線程獲取了這個對象的monitor,當前的線程就要一直等待,直到獲得monitor的線程放棄monitor,當前的線程才有機會獲得monitor。如果monitor沒有被任何線程獲取,那么當前線程獲取這個monitor,把monitor的entry count設置為1。表示這個monitor被1個線程占用了。當前線程獲取了monitor之后,會增加這個monitor的時間計數,來記錄當前線程占用了monitor多長時間。我們看到,monitor這個詞在java虛擬機規范規定出現,但是在java語言和API文檔里面并沒有出現。monitor是藏在線程同步后面的原理和概念。4.Threads and Locks詳見http://java.sun.com/docs/books/vmspec/2nd-edition/html/Threads.doc.html。這段規范詳細地介紹了thread和lock的原理。下面給出這段規范的highlight。8.4 Nonatomic Treatment of double and long Variables (double和long類型的非原子操作。)8.7 Rules for volatile Variables8.10 Example: Possible Swap8.11 Example: Out-of-Order Writes如果對列出的這些highlight感興趣,請訪問相應的java虛擬機規范網址。5.Why specification?本文主要討論java相關規范的內容。規范文檔非常重要,尤其對于java,C#這種生成中間代碼的語言來說。上面說的是java的相關規范。這里順便提一下微軟.Net的相關規范。微軟的“公共語言基礎構造規范:Microsoft CLI -- Common Language Infrastructure (sorry, off the topic :-)http://msdn.microsoft.com/net/ecma/這個網址上有C#語言規范,CLI規范的下載。Enjoy it. :-)出處 wang hailong Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標簽: Java
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
久久综合九色综合欧美就去吻 | 欧美日韩国产一区二区三区地区| 亚洲免费av在线| 欧美视频一区| 国产拍欧美日韩视频二区 | 在线观看日韩一区| 午夜欧美电影在线观看| 午夜亚洲视频| 亚洲宅男天堂在线观看无病毒| 国产一区日韩欧美| 国产精品色噜噜| 欧美日韩91| 亚洲国产电影在线观看| 午夜精品婷婷| 亚洲国产精品v| 国内精品久久久久久久影视蜜臀| 国产精品每日更新| 激情亚洲成人| 一区二区三区精密机械公司| 国产精品推荐精品| 午夜精彩视频在线观看不卡| 亚洲精品一二| 亚洲美女偷拍久久| 国产精品午夜av在线| 亚洲精品免费一二三区| 国产一区二区三区久久久久久久久| 亚洲国产综合91精品麻豆| 免费试看一区| 免费观看成人鲁鲁鲁鲁鲁视频| 色老综合老女人久久久| 久久se精品一区二区| 这里只有精品免费| www.欧美日韩国产在线| 国产亚洲综合在线| 亚洲欧洲日夜超级视频| 天天综合日日夜夜精品| 欧美日韩在线精品一区二区三区激情| 国产一区二区不卡在线| 欧美大片顶级少妇| 欧美久久成人| 夜夜嗨av一区二区三区网页| 日本韩国欧美三级| 国产精品99久久久久| 久久久久久**毛片大全| 亚洲国产高清一区| 青青草国产精品97视觉盛宴| 欧美日韩国产小视频在线观看| 成人免费观看av| 国产精品不卡在线观看| 久久婷婷国产综合尤物精品| 久久er精品视频| 精品美女一区二区| 国产精品多人| 性久久久久久久久久久久| 欧美日韩视频在线第一区| av毛片久久久久**hd| 专区另类欧美日韩| 色久综合一二码| 福利一区二区在线| 成人欧美一区二区三区小说| 色视频成人在线观看免| 成人免费看视频| 亚洲欧洲中文日韩久久av乱码| 在线观看日韩毛片| 97久久精品人人爽人人爽蜜臀| 亚洲免费伊人电影| 色哦色哦哦色天天综合| 成人黄页在线观看| 亚洲福利一区二区三区| 欧美日韩国产影片| 欧美影院一区| 婷婷久久综合九色国产成人| 日韩视频免费观看高清完整版在线观看| 欧美日韩一区二区高清| 丝袜脚交一区二区| 日韩免费电影一区| 亚洲高清资源| 国精产品一区一区三区mba桃花| 国产蜜臀av在线一区二区三区| 亚洲一区二区在| 国产精品99久久久| 亚洲激情成人在线| 91精品国产色综合久久 | 欧美性猛交xxxxxxxx| 91亚洲精品久久久蜜桃| 亚洲3atv精品一区二区三区| 日韩欧美你懂的| 一区二区91| 成人免费看视频| 亚洲制服欧美中文字幕中文字幕| 91精品国产品国语在线不卡| 亚洲青涩在线| 国产二区国产一区在线观看| 亚洲欧美福利一区二区| 制服丝袜国产精品| 国产视频在线观看一区| 成人黄色在线网站| 亚洲一区二区三区视频在线 | 裸体在线国模精品偷拍| 中文字幕精品综合| 欧美日韩二区三区| 亚洲看片网站| 成人一二三区视频| 亚洲国产精品一区二区www在线 | 韩国精品在线观看| 亚洲欧美日韩人成在线播放| 日韩亚洲国产中文字幕欧美| 香蕉久久夜色| 欧美精品成人| 国产一区二区三区在线观看免费| 一区二区三区免费看视频| 26uuu另类欧美| 一本到不卡精品视频在线观看| 欧美激情日韩| 国产麻豆视频精品| 欧美亚洲禁片免费| 国产婷婷精品| 欧美99在线视频观看| 国产一区二区三区高清播放| 亚洲第一二三四区| 国产拍揄自揄精品视频麻豆| 91麻豆精品国产91久久久使用方法 | 欧美片第1页综合| 国产在线精品免费| 亚洲成人午夜影院| 成人免费一区二区三区在线观看| 日韩欧美一区电影| 欧美中文字幕一区二区三区| 国产一区二区你懂的| 午夜精品久久久久99热蜜桃导演| 国产精品久久久久久久久快鸭| 欧美一级电影网站| 欧美在线观看一二区| 亚洲在线黄色| 欧美午夜免费| 91在线视频免费观看| 国产精品综合网| 琪琪久久久久日韩精品| 一区二区三区.www| 国产精品理论在线观看| 欧美变态口味重另类| 欧美三级中文字| 久久综合福利| 午夜在线精品| 国产欧美日韩视频一区二区三区| 欧美视频不卡| 99久久精品久久久久久清纯| 国产精品91xxx| 国产在线精品一区二区三区不卡| 日韩激情一二三区| 亚洲成av人**亚洲成av**| 一区二区三区国产精品| 一区二区在线观看视频| 自拍偷拍国产精品| 中文字幕一区二区三区精华液| 欧美国产精品一区二区| 久久久久久久久97黄色工厂| 欧美精品一区在线观看| 日韩欧美国产三级| 日韩亚洲欧美中文三级| 欧美一区二区三区色| 欧美性三三影院| 在线观看三级视频欧美| 在线视频综合导航| 91国偷自产一区二区开放时间 | 欧美性猛片xxxx免费看久爱| 国产成人亚洲精品狼色在线| 国产老妇另类xxxxx| 国产久卡久卡久卡久卡视频精品| 激情久久五月天| 黄色小说综合网站| 男男gaygay亚洲| 免费观看久久久4p| 久久国产精品露脸对白| 精品一区二区在线视频| 久久成人免费日本黄色| 激情综合色播激情啊| 国产麻豆欧美日韩一区| 高清国产午夜精品久久久久久| www..com久久爱| 91社区在线播放| 欧美日韩中文| 亚洲一级高清| 亚洲美女毛片| 麻豆av一区二区三区久久| 美女国产精品| 欧美亚洲精品一区| 欧美一二三区在线| 久久婷婷成人综合色| 久久精品视频网| 国产精品美女视频| 亚洲自拍都市欧美小说| 日日夜夜精品视频天天综合网| 日产欧产美韩系列久久99| 久久国产欧美日韩精品| 国产精品性做久久久久久| 成人激情小说网站| 欧美日韩调教| 国产一区二区三区成人欧美日韩在线观看| 免费看黄裸体一级大秀欧美|