日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java Thread in JVM

瀏覽:22日期:2024-07-01 09:45:18
內(nèi)容: 本文從JVM的角度探討Java Thread的語法和編譯結(jié)果。如果需要獲得第一手資料,請直接訪問以下的資源——Java語言規(guī)范,Java虛擬機規(guī)范中有關(guān)線程的定義說明。本文旨在介紹這些比較重要的線程相關(guān)的規(guī)范,基本上不另作發(fā)揮。(除了提到微軟的“公共語言基礎(chǔ)構(gòu)造。:-)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語言規(guī)范詳見http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#30531。用synchronized關(guān)鍵字修飾的方法,分為兩種情況:(static)靜態(tài)方法,和實例方法。(static)靜態(tài)方法的“鎖是這個擁有這個方法的對象的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關(guān)鍵字的編譯結(jié)果這一節(jié),我們來看一看synchronized關(guān)鍵字編譯之后的java虛擬機指令是什么。如果需要第一手資料,請參見java虛擬機規(guī)范相關(guān)的部分http://java.sun.com/docs/books/vmspec/2nd-edition/html/Compiling.doc.html#6530這段規(guī)范里面講到,java虛擬機規(guī)范提供兩條指令,monitorenter和monitorexit,來支持線程。但是對于上一節(jié)講到的,用synchronized修飾的方法來說,并不使用這兩個方法,而只是簡單地用ACC_SYNCHRONIZED標志修飾。虛擬機調(diào)用方法的時候會檢查這個標志,進行同步。synchronized語句的編譯結(jié)果對應(yīng)monitorenter和monitorexit兩條指令。比如,下面的代碼:void onlyMe(Foo f) {synchronized(f) {doSomething();}}的編譯結(jié)果是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定義的一段節(jié)錄: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對應(yīng),如果有其它的線程獲取了這個對象的monitor,當前的線程就要一直等待,直到獲得monitor的線程放棄monitor,當前的線程才有機會獲得monitor。如果monitor沒有被任何線程獲取,那么當前線程獲取這個monitor,把monitor的entry count設(shè)置為1。表示這個monitor被1個線程占用了。當前線程獲取了monitor之后,會增加這個monitor的時間計數(shù),來記錄當前線程占用了monitor多長時間。我們看到,monitor這個詞在java虛擬機規(guī)范規(guī)定出現(xiàn),但是在java語言和API文檔里面并沒有出現(xiàn)。monitor是藏在線程同步后面的原理和概念。4.Threads and Locks詳見http://java.sun.com/docs/books/vmspec/2nd-edition/html/Threads.doc.html。這段規(guī)范詳細地介紹了thread和lock的原理。下面給出這段規(guī)范的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感興趣,請訪問相應(yīng)的java虛擬機規(guī)范網(wǎng)址。5.Why specification?本文主要討論java相關(guān)規(guī)范的內(nèi)容。規(guī)范文檔非常重要,尤其對于java,C#這種生成中間代碼的語言來說。上面說的是java的相關(guān)規(guī)范。這里順便提一下微軟.Net的相關(guān)規(guī)范。微軟的“公共語言基礎(chǔ)構(gòu)造規(guī)范:Microsoft CLI -- Common Language Infrastructure (sorry, off the topic :-)http://msdn.microsoft.com/net/ecma/這個網(wǎng)址上有C#語言規(guī)范,CLI規(guī)范的下載。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
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲午夜av| 国产精品探花在线观看| 成人在线观看免费视频| 久久香蕉精品香蕉| 日韩三区四区| 老司机精品久久| 欧洲毛片在线视频免费观看| 国产精品久久久免费| 99视频精品免费观看| 久久亚洲成人| 日韩精品首页| а√在线中文在线新版| 国产精品黑丝在线播放| 国产一区二区亚洲| 国产一区国产二区国产三区| 国产香蕉精品| 欧美日韩午夜电影网| 日韩av影院| 日韩超碰人人爽人人做人人添| 亚洲区欧美区| 日韩美女精品| 欧美一级久久| 国产乱论精品| 国产精品宾馆| 欧美aa国产视频| 91精品国产自产精品男人的天堂| 国产精品久久久久久av公交车| 日韩激情精品| 免费亚洲婷婷| 成人av三级| 亚洲性图久久| 在线视频精品| 欧美日韩国产欧| 国产精品调教| 国产一区国产二区国产三区| 日韩精品久久久久久| 蜜桃精品在线| 里番精品3d一二三区| 日韩精品一二三区| 中文字幕av一区二区三区人 | 日韩一区二区三区高清在线观看| 亚洲精品自拍| 777久久精品| 成人日韩av| jiujiure精品视频播放| 亚洲一区二区小说| 国产精品2023| 久久美女精品| 日韩不卡手机在线v区| 国产精品久久久免费| 亚洲风情在线资源| 老鸭窝毛片一区二区三区| 欧美视频精品全部免费观看| 蜜臀国产一区| 中文不卡在线| 久久一区视频| 五月天久久久| 国产亚洲精品美女久久| 欧美精品高清| 亚洲一级淫片| 精品色999| 黄色亚洲精品| 国产精品a久久久久| 国产综合精品| 日本不卡一区二区三区| 99riav1国产精品视频| 欧美久久精品一级c片| 国精品产品一区| 97精品国产一区二区三区| 久久这里只有精品一区二区| а√天堂中文在线资源8| 中文字幕免费一区二区| japanese国产精品| 综合干狼人综合首页| 日韩久久一区| 欧美黄页在线免费观看| jiujiure精品视频播放| 日韩av一级| 日韩欧美精品一区二区综合视频| 久久国产日韩欧美精品| 成人看片网站| 91精品国产经典在线观看| 欧美影院三区| 国产精品久久久久久久久久妞妞| 国产精品超碰| 国产伦理一区| 亚洲一区免费| av资源亚洲| 日韩成人精品一区二区三区 | 欧美成人日韩| 免费在线亚洲| 亚洲最新av| 91精品婷婷色在线观看| 天堂精品久久久久| 久久久蜜桃一区二区人| 免费看一区二区三区| 亚洲美女91| 日韩在线视频精品| 国产精品一国产精品| 免费亚洲婷婷| 日韩精品免费一区二区夜夜嗨| 最新中文字幕在线播放| 国产v日韩v欧美v| 亚洲精品一区二区妖精| 久久精品99久久久| 91成人精品视频| 欧美韩一区二区| 99久久久久国产精品| 久久久久久亚洲精品美女| 日韩中文字幕亚洲一区二区va在线| 另类欧美日韩国产在线| 亚洲资源网站| 久久久久久久久久久9不雅视频| 国产66精品| 日韩不卡在线观看日韩不卡视频| 日韩欧美精品综合| 麻豆久久久久久| 中文字幕一区二区三区四区久久| 国产91久久精品一区二区| 久久久久久久欧美精品| 亚洲欧洲午夜| 鲁大师影院一区二区三区| 亚洲风情在线资源| 野花国产精品入口| 超碰超碰人人人人精品| 高清日韩中文字幕| 久久不卡国产精品一区二区| caoporn视频在线| 日本欧美不卡| 日本视频一区二区| 偷拍亚洲精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲精品成人图区| 国内不卡的一区二区三区中文字幕| 国产精品亚洲产品| 欧美日韩一区二区国产| 日韩av午夜在线观看| 天堂俺去俺来也www久久婷婷| 蜜臀av亚洲一区中文字幕| 三级欧美韩日大片在线看| 老鸭窝毛片一区二区三区| 免费观看在线色综合| 欧美中文日韩| 国产精品激情| 日韩欧美综合| 欧美特黄一区| 日韩精品乱码av一区二区| 在线一区电影| 国产福利一区二区精品秒拍| 国产精品久久久久久久免费软件| 欧美一区二区三区免费看| 国产日韩欧美中文在线| 国产日韩亚洲| 国产精品v一区二区三区| 老司机免费视频一区二区| 国产成人免费av一区二区午夜| 在线看片国产福利你懂的| 欧美成a人免费观看久久| 美女网站一区| 日韩中文字幕av电影| 日韩专区视频网站| 国产精品地址| 欧美国产专区| 麻豆视频在线观看免费网站黄| 日韩欧美网址| 好看不卡的中文字幕| 综合干狼人综合首页| 国产伦理一区| 91精品韩国| 巨乳诱惑日韩免费av| 国产三级一区| 日韩大片在线| 好吊日精品视频| 亚洲黄页一区| 欧美日韩尤物久久| 亚洲五月综合| 亚洲成人精品| 国产精品最新| 国产亚洲综合精品| 久久伦理在线| 久久精品卡一| 久久夜夜操妹子| 伊人久久大香线蕉av不卡| 亚洲日本免费电影| 在线日韩成人| 精品欧美视频| 亚洲一级二级| 天海翼亚洲一区二区三区| 免费在线亚洲欧美| 婷婷综合激情| 91九色综合| 丝袜美腿诱惑一区二区三区| 99精品网站| 日韩一二三区在线观看| 久久99久久人婷婷精品综合| 99久久精品费精品国产| 亚洲aa在线| 日韩精品免费一区二区三区| 日韩中文一区二区| av一区在线|