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

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

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

瀏覽:92日期:2024-06-07 11:38:16
內(nèi)容: 另外,如果應(yīng)用程序必須等待網(wǎng)絡(luò)連接或數(shù)據(jù)庫連接等數(shù)據(jù)吞吐速度相對較慢的資源時,多線程應(yīng)用程序是非常有利的。基于Internet的應(yīng)用程序有必要是多線程類型的,例如,當開發(fā)要支持大量客戶機的服務(wù)器端應(yīng)用程序時,可以將應(yīng)用程序創(chuàng)建成多線程形式來響應(yīng)客戶端的連接請求,使每個連接用戶獨占一個客戶端連接線程。這樣,用戶感覺服務(wù)器只為連接用戶自己服務(wù),從而縮短了服務(wù)器的客戶端響應(yīng)時間。 Java語言的多線程程序設(shè)計方法 利用Java語言實現(xiàn)多線程應(yīng)用程序的方法很簡單。根據(jù)多線程應(yīng)用程序繼承或?qū)崿F(xiàn)對象的不同可以采用兩種方式:一種是應(yīng)用程序的并發(fā)運行對象直接繼承Java的線程類Thread;另外一種方式是定義并發(fā)執(zhí)行對象實現(xiàn)Runnable接口。 繼承Thread類的多線程程序設(shè)計方法 Thread 類是JDK中定義的用于控制線程對象的類,在該類中封裝了用于進行線程控制的方法。見下面的示例代碼: //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語言中的線程類Thread并且在main方法中創(chuàng)建了三個Consumer對象的實例。當調(diào)用對象實例的start方法時,自動調(diào)用Consumer類中定義的run方法啟動對象線程運行。線程運行的結(jié)果是每間隔nTime時間打印出對象實例中的字符串成員變量strConsumer的內(nèi)容。 可以總結(jié)出繼承Thread類的多線程程序設(shè)計方法是使應(yīng)用程序類繼承Thread類并且在該類的run方法中實現(xiàn)并發(fā)性處理過程。 實現(xiàn)Runnable接口的多線程程序設(shè)計方法 Java語言中提供的另外一種實現(xiàn)多線程應(yīng)用程序的方法是多線程對象實現(xiàn)Runnable接口并且在該類中定義用于啟動線程的run方法。這種定義方式的好處在于多線程應(yīng)用對象可以繼承其它對象而不是必須繼承Thread類,從而能夠增加類定義的邏輯性。 實現(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(); //其它對象實例的運行線程 //… … } } 從上述代碼可以看出:該類實現(xiàn)了Runnable接口并且在該類中定義了run方法。這種多線程應(yīng)用程序的實現(xiàn)方式與繼承Thread類的多線程應(yīng)用程序的重要區(qū)別在于啟動多線程對象的方法設(shè)計方法不同。在上述代碼中,通過創(chuàng)建Thread對象實例并且將應(yīng)用對象作為創(chuàng)建Thread類實例的參數(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 另外,?
標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 视频一区二区三区在线 | 成人欧美在线视频 | 国产高清视频a在线大全 | 玖玖国产在线观看 | 日韩免费高清一级毛片在线 | 欧美日韩精品高清一区二区 | 悟空影视大全免费高清 | 国产精品美女久久久久网站 | 亚洲a级片在线观看 | 欧美一级大片在线观看 | 在线中文字幕精品第5页 | 青久草视频 | 美国毛片网站 | 日韩激情中文字幕一区二区 | 国产精品免费一区二区区 | a级成人毛片免费视频高清 a级高清观看视频在线看 | 午夜大片免费男女爽爽影院久久 | 国产成人一区二区三区免费观看 | 国产精品久久久久久免费 | 精品9e精品视频在线观看 | 一级毛片免费播放 | 欧美日韩一区二区三区久久 | 国产精品a区 | 一二三区在线观看 | 欧美日韩精品高清一区二区 | 成人国产精品免费软件 | 美国一级免费毛片 | www.亚洲国产 | 久久99精品一级毛片 | 亚洲在成人网在线看 | 人人99| 国内成人精品视频 | 欧美成人特黄级毛片 | 国产精品白浆流出视频 | 国产黄色小视频 | 欧美亚洲日本在线 | 看真人一一级毛片 | 亚洲一区二区精品视频 | 手机看片午夜 | 成人黄色一级毛片 | 国产免费爽爽视频免费可以看 |