最簡單的編寫基於執行緒的程式碼的方法之一:派生執行緒類(轉)
最簡單的編寫基於執行緒的程式碼的方法之一:派生執行緒類(轉)[@more@]派生執行緒類
最簡單的編寫基於執行緒的程式碼的方法之一,就是派生java.lang.Thread 類。該執行緒類是java.lang 包的一個成員,在預設情況下,執行緒類可以被所有的Java應用程式呼叫。為了使用執行緒類,我們需要了解The java.lang.Thread 類中定義的五個方法:
run():該方法用於執行緒的執行。你需要過載該方法,以便讓執行緒做特定的工作。
start():該方法使得執行緒啟動run()。
stop():該方法同start方法的作用相反,停止執行緒的執行。
suspend():該方法同stop方法不同的是,它並不終止未完成的執行緒,它僅僅掛起執行緒,以後還可恢復。
resume():該方法重新啟動已經掛起的執行緒。
執行List A中的程式,執行結果見List B
List A :擴充套件執行緒類
class TestThreads {
public static void main (String args []) {
class MyThread extends Thread {
String which;
MyThread (String which) {
this.which = which;
}
public void run() {
int iterations = (int)(Math.random()*100) %15;
int sleepinterval = (int)(Math.random()*1000);
System.out.println(which + " running for " + iterations +" iterations");
System.out.println(which + " sleeping for " + sleepinterval + "ms between loops");
for (int i = 0; < iterations; i++) {
System.out.println(which +" " + i);
try {
Thread.sleep(sleepinterval);
} catch (InterruptedException e) {}
}
}
}
MyThread a = new MyThread("Thread A");
MyThread b = new MyThread("Thread B");
MyThread c = new MyThread("Thread C");
a.start();
b.start();
c.start();
}
}
ListB: 清單A的輸出
Thread A running for 16 iterations
Thread C running for 15 iterations
Thread B running for 14 iterations
Thread A sleeping for 305ms between
loops
Thread C sleeping for 836ms between
loops
Thread B sleeping for 195ms between
loops
Thread A 0
Thread C 0
Thread B 0
. . .
Thread C 13
Thread B 13
Thread A 14
Thread C 14
Thread A 15
List A演示瞭如何從現有的Thread類中派生出一個新類。新建立的類過載了run 方法。有趣的是,實現run 方法不必很嚴格,因為Thread類提供一個預設的run方法,儘管它不是特別有用。
在有些場合,我們不能簡單地改變指定物件的父類。我們仍然需要採用執行緒。這時,我們就需要用到Runnable介面。
最簡單的編寫基於執行緒的程式碼的方法之一,就是派生java.lang.Thread 類。該執行緒類是java.lang 包的一個成員,在預設情況下,執行緒類可以被所有的Java應用程式呼叫。為了使用執行緒類,我們需要了解The java.lang.Thread 類中定義的五個方法:
run():該方法用於執行緒的執行。你需要過載該方法,以便讓執行緒做特定的工作。
start():該方法使得執行緒啟動run()。
stop():該方法同start方法的作用相反,停止執行緒的執行。
suspend():該方法同stop方法不同的是,它並不終止未完成的執行緒,它僅僅掛起執行緒,以後還可恢復。
resume():該方法重新啟動已經掛起的執行緒。
執行List A中的程式,執行結果見List B
List A :擴充套件執行緒類
class TestThreads {
public static void main (String args []) {
class MyThread extends Thread {
String which;
MyThread (String which) {
this.which = which;
}
public void run() {
int iterations = (int)(Math.random()*100) %15;
int sleepinterval = (int)(Math.random()*1000);
System.out.println(which + " running for " + iterations +" iterations");
System.out.println(which + " sleeping for " + sleepinterval + "ms between loops");
for (int i = 0; < iterations; i++) {
System.out.println(which +" " + i);
try {
Thread.sleep(sleepinterval);
} catch (InterruptedException e) {}
}
}
}
MyThread a = new MyThread("Thread A");
MyThread b = new MyThread("Thread B");
MyThread c = new MyThread("Thread C");
a.start();
b.start();
c.start();
}
}
ListB: 清單A的輸出
Thread A running for 16 iterations
Thread C running for 15 iterations
Thread B running for 14 iterations
Thread A sleeping for 305ms between
loops
Thread C sleeping for 836ms between
loops
Thread B sleeping for 195ms between
loops
Thread A 0
Thread C 0
Thread B 0
. . .
Thread C 13
Thread B 13
Thread A 14
Thread C 14
Thread A 15
List A演示瞭如何從現有的Thread類中派生出一個新類。新建立的類過載了run 方法。有趣的是,實現run 方法不必很嚴格,因為Thread類提供一個預設的run方法,儘管它不是特別有用。
在有些場合,我們不能簡單地改變指定物件的父類。我們仍然需要採用執行緒。這時,我們就需要用到Runnable介面。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-958473/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於MFC的編寫執行緒快速入門 (轉)執行緒
- 編寫高效的執行緒安全類執行緒
- 用BCB寫一個最簡單的多執行緒 (轉)執行緒
- 多執行緒Demo學習(執行緒的同步,簡單的執行緒通訊)執行緒
- 基於python編寫一個簡單的多執行緒埠掃描指令碼Python執行緒指令碼
- 簡單的執行緒池執行緒
- 程式執行緒篇——程式執行緒基礎執行緒
- 執行緒和執行緒池的理解與java簡單例子執行緒Java單例
- 執行緒、開啟執行緒的兩種方式、執行緒下的Join方法、守護執行緒執行緒
- 多執行緒(五)---執行緒的Yield方法執行緒
- 簡單的執行緒池(八)執行緒
- 簡單的執行緒池(七)執行緒
- 簡單的執行緒池(九)執行緒
- 簡單的執行緒池(六)執行緒
- 簡單的執行緒池(四)執行緒
- 簡單的執行緒池(三)執行緒
- 簡單的執行緒池(二)執行緒
- java執行緒程式設計(一):執行緒基礎(轉)Java執行緒程式設計
- 多執行緒-以前的執行緒安全的類回顧執行緒
- 多執行緒-程式和執行緒的概述執行緒
- 多執行緒程式設計基礎(一)-- 執行緒的使用執行緒程式設計
- 編碼:執行緒執行監控執行緒
- 簡單易懂的程式與執行緒詳解執行緒
- Java執行緒池中執行緒的狀態簡介Java執行緒
- 執行緒同步的情景之一執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- 執行緒(一)——執行緒,執行緒池,Task概念+程式碼實踐執行緒
- 編寫程式/執行緒監視器執行緒
- 編寫執行緒安全的JSP應用程式執行緒JS
- 關於程式與執行緒的一個簡單解釋執行緒
- 執行緒1-單執行緒執行緒
- wxWidgets簡單的多執行緒執行緒
- 多執行緒程式設計基礎(二)-- 執行緒池的使用執行緒程式設計
- 執行緒和程式基礎以及多執行緒的基本使用(iOS)執行緒iOS
- Java多執行緒之Executor框架和手寫簡易的執行緒池Java執行緒框架
- 多執行緒-匿名內部類的方式實現多執行緒程式執行緒
- 玩轉java多執行緒 之多執行緒基礎 執行緒狀態 及執行緒停止實戰Java執行緒
- 關於redis單執行緒的分析Redis執行緒