Java平臺(tái)從開始就被設(shè)計(jì)成為多線程環(huán)境。在你的主程序執(zhí)行的時(shí)候,其它作業(yè)如碎片收集和事件處理則是在后臺(tái)進(jìn)行的。本質(zhì)上,你可以認(rèn)為這些作業(yè)是線程。它們正好是系統(tǒng)管理線程,但是" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Java線程使用入門(1)

系統(tǒng) 2345 0

????? 本文是Java線程使用的入門級(jí)教程。Java平臺(tái)從開始就被設(shè)計(jì)成為多線程環(huán)境,多線程的好處在于可以充分利用處理器資源,保證更快速的完成任務(wù)。

<script src="http://www.51cto.com/js/article/keywords_ad_new.js"></script>

?

Java平臺(tái)從開始就被設(shè)計(jì)成為多線程環(huán)境。在你的主程序執(zhí)行的時(shí)候,其它作業(yè)如碎片收集和事件處理則是在后臺(tái)進(jìn)行的。本質(zhì)上,你可以認(rèn)為這些作業(yè)是線程。它們正好是系統(tǒng)管理線程,但是無(wú)論如何,它們是線程。線程使你能夠定義相互獨(dú)立的作業(yè),彼此之間互不干擾。系統(tǒng)將交換這些作業(yè)進(jìn)或出CPU,這樣(從外部看來(lái))它們好象是同時(shí)運(yùn)行的。

在你需要在你的程序中處理多個(gè)作業(yè)時(shí),你也可以使用多個(gè)進(jìn)程。這些進(jìn)程可以是你自己創(chuàng)建的,你也可以操縱系統(tǒng)線程。

你進(jìn)行這些多作業(yè)處理,要使用幾個(gè)不同的類或接口:

 java.util.Timer類
 javax.swing.Timer類
 Thread類
 Runnable接口

對(duì)于簡(jiǎn)單的作業(yè),通常需要重復(fù)的,你可以使用java.util.Timer類告訴它“每半秒鐘做一次”。注意:大多數(shù)系統(tǒng)例程是使用毫秒的。半秒鐘是500毫秒。

你希望Timer實(shí)現(xiàn)的任務(wù)是在java.util.TimerTask實(shí)例中定義的,其中運(yùn)行的方法包含要執(zhí)行的任務(wù)。這些在Hi類中進(jìn)行了演示,其中字符串“Hi”重復(fù)地被顯示在屏幕上,直到你按Enter鍵。

            import java.util.*;

public class Hi {
	public static void main(String args[]) throws java.io.IOException {
		TimerTask task = new TimerTask() {
			public void run() {
				System.out.println("Hi");
			}
		};
		Timer timer = new Timer();
		timer.schedule(task, 0, 500);
		System.out.println("Press ENTER to stop");
		System.in.read(new byte[10]);
		timer.cancel();
	}
}
          

??

?

Java Runtime Environment工作的方式是只要有一個(gè)線程在運(yùn)行,程序就不退出。這樣,當(dāng)取消被調(diào)用,沒(méi)有其它線程在運(yùn)行了,則程序退出。有一些系統(tǒng)線程在運(yùn)行,如碎片收集程序。這些系統(tǒng)線程也被稱為后臺(tái)線程。后臺(tái)線程的存在不影響運(yùn)行環(huán)境被關(guān)閉,只有非后臺(tái)線程保證運(yùn)行環(huán)境不被關(guān)閉。

Javax.swing.Timer類與java.util.timer類的工作方式相似,但是有一些差別需要注意。第一,運(yùn)行的作業(yè)被ActionListener接口的實(shí)現(xiàn)來(lái)定義。第二,作業(yè)的執(zhí)行是在事件處理線程內(nèi)部進(jìn)行的,而不象java.util.Timer類是在它的外部。這是很重要的,因?yàn)樗P(guān)系到Swing組件集是如何設(shè)計(jì)的。

如果你不熟悉Swing,它是一組可以被Java程序使用的圖形組件。Swing被設(shè)計(jì)程被稱為單線程的。這意味著對(duì)Swing類內(nèi)部?jī)?nèi)容的訪問(wèn)必須在單個(gè)線程中完成。這個(gè)特定的線程是事件處理線程。這樣,例如你想改變Label組件的文字,你不能僅僅調(diào)用Jlabel的setText方法。相反,你必須確認(rèn)setText調(diào)用發(fā)生在事件處理線程中,而這正是javax.swing.Time類派的上用場(chǎng)的地方。

為了說(shuō)明這第二種情況,下面的程序顯示一個(gè)增加的計(jì)數(shù)器的值。美半秒鐘計(jì)數(shù)器的數(shù)值增加,并且新的數(shù)值被顯示。

          import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Count {
	public static void main(String args[]) {
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container contentPane = frame.getContentPane();
		final JLabel label = new JLabel("", JLabel.CENTER);
		label.setFont(new Font("Serif", Font.PLAIN, 36));
		contentPane.add(label, BorderLayout.CENTER);
		ActionListener listener = new ActionListener() {
			int count = 0;

			public void actionPerformed(ActionEvent e) {
				count++;
				label.setText(Integer.toString(count));
			}
		};
		Timer timer = new Timer(500, listener);
		timer.start();
		frame.setSize(300, 100);
		frame.show();
	}
}
        

?

上述程序的結(jié)果是:

?

萬(wàn)一你要做的不是一個(gè)簡(jiǎn)單的重復(fù)作業(yè),java.lang.Thread類就派上了用場(chǎng)。它允許你自己控制基本功能。通過(guò)創(chuàng)建Thread的一個(gè)子類,你可以使你的系統(tǒng)脫離,并進(jìn)行一個(gè)長(zhǎng)時(shí)間運(yùn)行的作業(yè),如從網(wǎng)絡(luò)上讀取一個(gè)文件,而不阻礙你的其它程序的運(yùn)行。這種長(zhǎng)時(shí)間運(yùn)行的作業(yè)將在run方法中定義。? 更多內(nèi)容請(qǐng)看Java環(huán)境安裝配置、Solaris基礎(chǔ)知識(shí)入門、Java編程開發(fā)手冊(cè)專題,或進(jìn)入討論組討論。


Java線程使用入門(1)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久日韩精品中文字幕网 | 日本在线观看www鲁啊鲁视频 | 国产成人综合久久精品亚洲 | 在线看片91 | 亚洲区在线播放 | 国产99精品一区二区三区免费 | 亚洲成人在线视频播放 | 国产在线观看一区二区三区四区 | 高清一区高清二区视频 | 欧美一级网址 | 99久久精品免费看国产交换 | 精品成人在线观看 | 免费乱人伦| 亚洲精品国精品久久99热 | 四虎影视库永久在线地址 | 最新国产午夜精品视频成人 | 日韩欧美色视频在线观看 | 99久久在线 | 国产精品久久久久久久久免费hd | 99精品日韩| 久久国产精品99久久久久久牛牛 | 亚洲精品tv久久久久久久久久 | 日本黄色视 | 欧美 日韩 国产在线 | 国产91在线 | 日韩 | 色综合天天干 | 亚洲在线播放视频 | 中文字幕日韩视频 | 99视频国产热精品视频 | 曰本女人性配视频 | 国产精品爱久久久 | 亚洲一区在线视频 | 亚洲精品久久麻豆蜜桃 | 最新国产精品亚洲二区 | 国产最新精品 | 欧美高清不卡午夜精品免费视频 | 日本国产精品 | 国产成人综合视频 | 欧美精品午夜毛片免费看 | 有码中文字幕在线观看 | 99精品国产成人一区二区 |