JAVA多線程Thread和Runnable的實現(xiàn)
java中只允許單一繼承,但允許實現(xiàn)多個接口,因此第二種方法更靈活。
/**
* 運行繼承java.lang.Thread類定義的線程
*/
public void startOne() {
// 創(chuàng)建實例
OneThread oneThread = new OneThread();
// 啟動線程ThreadA
oneThread.startThreadA();
try {
// 設(shè)置線程休眠1秒
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 停止線程,此處為什么不用stop()方法,因為該方法已經(jīng)廢棄,但可以用在死鎖。
oneThread.stopThreadA();
}
/**
* 運行實現(xiàn)Runnable接口定義的線程
*/
public void startTwo() {
// 創(chuàng)建實例
Runnable runnable = new TwoThread();
// 將實例放入到線程中
Thread threadB = new Thread(runnable);
// 啟動線程
threadB.start();
}
// 繼承Thread類定義線程
class OneThread extends Thread {
private boolean running = false;
public void start() {
this.running = true;
super.start();
}
public void run() {
int i = 0;
try {
while (running) {
System.out.println("繼承Thread類定義線程程序體......" + i++);
Thread.sleep(200);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void startThreadA() {
System.out.println("啟動繼承Thread類定義線程");
this.start();
}
public void stopThreadA() {
System.out.println("關(guān)閉繼承Thread類定義線程");
this.running = false;
}
}
// 實現(xiàn)Runnable接口定義線程
class TwoThread implements Runnable {
private Date runDate;
public void run() {
System.out.println("實現(xiàn)Runnable接口定義線程程序體......");
this.runDate = new Date();
System.out.println("線程啟動時間......" + runDate);
}
public static void main(String[] args) {
// 實例化對象
ThreadStartAndStop threadStartAndStop = new ThreadStartAndStop();
threadStartAndStop.startOne();
threadStartAndStop.startTwo();
}
啟動繼承Thread類定義線程
繼承Thread類定義線程程序體......0
繼承Thread類定義線程程序體......1
繼承Thread類定義線程程序體......2
繼承Thread類定義線程程序體......3
繼承Thread類定義線程程序體......4
關(guān)閉繼承Thread類定義線程
實現(xiàn)Runnable接口定義線程程序體......
線程啟動時間......Fri Mar 15 12:56:57 CST 2013
相關(guān)文章
Java Vector和ArrayList的異同分析及實例講解
在本篇文章里小編給大家整理的是一篇關(guān)于Java Vector和ArrayList的異同分析及實例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2021-01-01Java使用list集合remove需要注意的事項(使用示例)
List集合的一個特點是它其中的元素是有序的,也就是說元素的下標(biāo)是根據(jù)插入的順序來的,在刪除頭部或者中間的一個元素后,后面的元素下標(biāo)會往前移動,本文給大家介紹Java使用list集合remove需要注意的事項,感興趣的朋友一起看看吧2022-01-01Java GUI進階之流式布局管理器FlowLayout專項精講
FlowLayout-流式布局管理器,按水平方向依次排列放置組件,排滿一行,換下一行繼續(xù)排列。排列方向(左到右 或 右到左)取決于容器的componentOrientation屬性2022-04-04