色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

JAVA教程:解析Java的多線程機(jī)制(3)

瀏覽:122日期:2024-06-07 11:38:16
內(nèi)容: 另外,如果應(yīng)用程序必須等待網(wǎng)絡(luò)連接或數(shù)據(jù)庫(kù)連接等數(shù)據(jù)吞吐速度相對(duì)較慢的資源時(shí),多線程應(yīng)用程序是非常有利的。基于Internet的應(yīng)用程序有必要是多線程類(lèi)型的,例如,當(dāng)開(kāi)發(fā)要支持大量客戶(hù)機(jī)的服務(wù)器端應(yīng)用程序時(shí),可以將應(yīng)用程序創(chuàng)建成多線程形式來(lái)響應(yīng)客戶(hù)端的連接請(qǐng)求,使每個(gè)連接用戶(hù)獨(dú)占一個(gè)客戶(hù)端連接線程。這樣,用戶(hù)感覺(jué)服務(wù)器只為連接用戶(hù)自己服務(wù),從而縮短了服務(wù)器的客戶(hù)端響應(yīng)時(shí)間。 Java語(yǔ)言的多線程程序設(shè)計(jì)方法 利用Java語(yǔ)言實(shí)現(xiàn)多線程應(yīng)用程序的方法很簡(jiǎn)單。根據(jù)多線程應(yīng)用程序繼承或?qū)崿F(xiàn)對(duì)象的不同可以采用兩種方式:一種是應(yīng)用程序的并發(fā)運(yùn)行對(duì)象直接繼承Java的線程類(lèi)Thread;另外一種方式是定義并發(fā)執(zhí)行對(duì)象實(shí)現(xiàn)Runnable接口。 繼承Thread類(lèi)的多線程程序設(shè)計(jì)方法 Thread 類(lèi)是JDK中定義的用于控制線程對(duì)象的類(lèi),在該類(lèi)中封裝了用于進(jìn)行線程控制的方法。見(jiàn)下面的示例代碼: //Consumer.java import java.util.*; class Consumer extends Thread { int nTime; String strConsumer; public Consumer(int nTime, String strConsumer) { this.nTime = nTime; this.strConsumer = strConsumer; } public void run() { while(true) { try { System.out.println('Consumer name:'+strConsumer+'n'); Thread.sleep(nTime); } catch(Exception e) { e.printStackTrace(); } } } static public void main(String args[]) { Consumer aConsumer = new Consumer (1000, 'aConsumer'); aConsumer.start(); Consumer bConsumer = new Consumer (2000, 'bConsumer'); bConsumer.start(); Consumer cConsumer = new Consumer (3000, 'cConsumer '); cConsumer.start(); } } 從上面的程序代碼可以看出:多線程執(zhí)行地下Consumer繼承Java語(yǔ)言中的線程類(lèi)Thread并且在main方法中創(chuàng)建了三個(gè)Consumer對(duì)象的實(shí)例。當(dāng)調(diào)用對(duì)象實(shí)例的start方法時(shí),自動(dòng)調(diào)用Consumer類(lèi)中定義的run方法啟動(dòng)對(duì)象線程運(yùn)行。線程運(yùn)行的結(jié)果是每間隔nTime時(shí)間打印出對(duì)象實(shí)例中的字符串成員變量strConsumer的內(nèi)容。 可以總結(jié)出繼承Thread類(lèi)的多線程程序設(shè)計(jì)方法是使應(yīng)用程序類(lèi)繼承Thread類(lèi)并且在該類(lèi)的run方法中實(shí)現(xiàn)并發(fā)性處理過(guò)程。 實(shí)現(xiàn)Runnable接口的多線程程序設(shè)計(jì)方法 Java語(yǔ)言中提供的另外一種實(shí)現(xiàn)多線程應(yīng)用程序的方法是多線程對(duì)象實(shí)現(xiàn)Runnable接口并且在該類(lèi)中定義用于啟動(dòng)線程的run方法。這種定義方式的好處在于多線程應(yīng)用對(duì)象可以繼承其它對(duì)象而不是必須繼承Thread類(lèi),從而能夠增加類(lèi)定義的邏輯性。 實(shí)現(xiàn)Runnable接口的多線程應(yīng)用程序框架代碼如下所示: //Consumer.java import java.util.*; class Consumer implements Runnable { … … public Consumer(int nTime, String strConsumer){… …} public void run(){… …} static public void main(String args[]) { Thread aConsumer = new Thread(new Consumer(1000, 'aConsumer')); aConsumer.start(); //其它對(duì)象實(shí)例的運(yùn)行線程 //… … } } 從上述代碼可以看出:該類(lèi)實(shí)現(xiàn)了Runnable接口并且在該類(lèi)中定義了run方法。這種多線程應(yīng)用程序的實(shí)現(xiàn)方式與繼承Thread類(lèi)的多線程應(yīng)用程序的重要區(qū)別在于啟動(dòng)多線程對(duì)象的方法設(shè)計(jì)方法不同。在上述代碼中,通過(guò)創(chuàng)建Thread對(duì)象實(shí)例并且將應(yīng)用對(duì)象作為創(chuàng)建Thread類(lèi)實(shí)例的參數(shù)。 轉(zhuǎn)自: 賽迪網(wǎng) 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 另外,?
標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 精品国产品欧美日产在线 | 中文精品视频一区二区在线观看 | 国产欧美一区二区三区精品 | 国产亚洲美女精品久久 | 久久国产精品歌舞团 | 久久.com| 中文字幕亚洲综合久久 | 午夜性片| 免费人成黄页网站在线观看 | a级国产乱理伦片在线观看99 | 久久精品3| 99re在线精品视频 | 欧美亚洲国产日韩一区二区三区 | 一级一片免费播放 | 亚洲国产精品久久久久久网站 | 在线视频 日韩 | 国产韩国精品一区二区三区久久 | 国产精品午夜波多野结衣性色 | 国产成人毛片视频不卡在线 | 手机看片日韩国产一区二区 | 日本加勒比高清一本大道 | 欧美日韩在线视频一区 | 国产成人手机视频 | 色悠久久久久综合网伊人男男 | 亚洲午夜精品一区二区 | 91网站网站网站在线 | 久久91这里精品国产2020 | 国产一区亚洲二区三区 | 成人在线一区二区三区 | 中文字幕有码视频 | 97在线免费看视频 | 男女男精品视频免费观看 | 午夜香蕉网 | 波多野结衣一区在线 | 免费永久在线观看黄网 | 精品日韩欧美一区二区三区 | 国产亚洲自拍一区 | 欧美日韩国产58香蕉在线视频 | 国产成人精品一区二区三区 | 久久综合婷婷香五月 | 欧美激情一区二区亚洲专区 |