一個java多線程的例子

import java.io.*;  
//多線程編程  
public class MultiThread   
{  
public static void main(String args[])  
{  
# System.out.println(
"我是主線程!");  
//下面創建線程實例thread1  
# ThreadUseExtends thread1=new ThreadUseExtends();  
//創建thread2時以實現了Runnable接口的THhreadUseRunnable類實例爲參數  
# Thread thread2=new Thread(new ThreadUseRunnable(),"SecondThread");  
# thread1.start();
//啓動線程thread1使之處於就緒狀態  
//thread1.setPriority(6);//設置thread1的優先級爲6  
//優先級將決定cpu空出時,處於就緒狀態的線程誰先佔領cpu開始運行  
//優先級範圍1到10,MIN_PRIORITY,MAX_PRIORITY,NORM_PAIORITY  
//新線程繼承創建她的父線程優先級,父線程通常有普通優先級即5NORM_PRIORITY  
# System.out.println("主線程將掛起7秒!");  
try  
{  
# Thread.sleep(
7000);//主線程掛起7秒  
# }
  
catch (InterruptedException e)  
{  
return;  
# }
  
# System.out.println(
"又回到了主線程!");  
if(thread1.isAlive())  
{   
# thread1.stop();
//如果thread1還存在則殺掉他  
# System.out.println("thread1休眠過長,主線程殺掉了thread1!");  
# }
  
else  
# System.out.println(
"主線程沒發現thread1,thread1已醒順序執行結束了!");  
# thread2.start();
//啓動thread2  
# System.out.println("主線程又將掛起7秒!");  
try  
{  
# Thread.sleep(
7000);//主線程掛起7秒  
# }
  
catch (InterruptedException e)  
{  
return;  
# }
  
# System.out.println(
"又回到了主線程!");  
if(thread2.isAlive())  
{   
# thread2.stop();
//如果thread2還存在則殺掉他  
# System.out.println("thread2休眠過長,主線程殺掉了thread2!");  
# }
  
else  
# System.out.println(
"主線程沒發現thread2,thread2已醒順序執行結束了!");  
# System.out.println(
"程序結束按任意鍵繼續!");  
try  
{  
# System.in.read();  
# }
  
catch (IOException e)  
{  
# System.out.println(e.toString());  
# }
  
#   
# }
//main  
# }
//MultiThread  
#   
#   
class ThreadUseExtends extends Thread  
//通過繼承Thread類,並實現它的抽象方法run()  
//適當時候創建這一Thread子類的實例來實現多線程機制  
//一個線程啓動後(也即進入就緒狀態)一旦獲得CPU將自動調用它的run()方法  
{  
#   
# ThreadUseExtends()
{}//構造函數  
public void run()  
{  
# System.out.println(
"我是Thread子類的線程實例!");  
# System.out.println(
"我將掛起10秒!");  
# System.out.println(
"回到主線程,請稍等,剛纔主線程掛起可能還沒醒過來!");  
try  
{  
# sleep(
10000);//掛起5秒  
# }
  
catch (InterruptedException e)  
{  
return;  
# }
  
//如果該run()方法順序執行完了,線程將自動結束,而不會被主線程殺掉  
//但如果休眠時間過長,則線程還存活,可能被stop()殺掉  
# }
  
# }
  
#   
#   
class ThreadUseRunnable implements Runnable  
//通過實現Runnable接口中的run()方法,再以這個實現了run()方法的類  
//爲參數創建Thread的線程實例  
{  
//Thread thread2=new Thread(this);  
//以這個實現了Runnable接口中run()方法的類爲參數創建Thread類的線程實例  
# ThreadUseRunnable(){}//構造函數  
public void run()  
{  
# System.out.println(
"我是Thread類的線程實例並以實現了Runnable接口的類爲參數!");  
# System.out.println(
"我將掛起1秒!");  
# System.out.println(
"回到主線程,請稍等,剛纔主線程掛起可能還沒醒過來!");  
try  
{  
# Thread.sleep(
1000);//掛起5秒  
# }
  
catch (InterruptedException e)  
{  
return;  
# }
  
//如果該run()方法順序執行完了,線程將自動結束,而不會被主線程殺掉  
//但如果休眠時間過長,則線程還存活,可能被stop()殺掉  
# }
  
#   
# }
  
//該程序可做的修改如改休眠時間或優先級setPriority() 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章