Java併發程式設計:如何建立執行緒、程序?
在前面一篇文章中已經講述了在程序和執行緒的由來,今天就來講一下在Java中如何建立執行緒,讓執行緒去執行一個子任務。下面先講述一下Java中的應用程式和程序相關的概念知識,然後再闡述如何建立執行緒以及如何建立程序。下面是本文的目錄大綱:
一.Java中關於應用程式和程序相關的概念
二.Java中如何建立執行緒
三.Java中如何建立程序
若有不正之處,請多多諒解並歡迎批評指正。
請尊重作者勞動成果,轉載請標明原文連結:
http://www.cnblogs.com/dolphin0520/p/3913517.html
一.Java中關於應用程式和程序相關的概念
在Java中,一個應用程式對應著一個JVM例項(也有地方稱為JVM程序),一般來說名字預設為java.exe或者javaw.exe(windows下可以通過工作管理員檢視)。Java採用的是單執行緒程式設計模型,即在我們自己的程式中如果沒有主動建立執行緒的話,只會建立一個執行緒,通常稱為主執行緒。但是要注意,雖然只有一個執行緒來執行任務,不代表JVM中只有一個執行緒,JVM例項在建立的時候,同時會建立很多其他的執行緒(比如垃圾收集器執行緒)。
由於Java採用的是單執行緒程式設計模型,因此在進行UI程式設計時要注意將耗時的操作放在子執行緒中進行,以避免阻塞主執行緒(在UI程式設計時,主執行緒即UI執行緒,用來處理使用者的互動事件)。
二.Java中如何建立執行緒
在java中如果要建立執行緒的話,一般有兩種方式:1)繼承Thread類;2)實現Runnable介面。
1.繼承Thread類
繼承Thread類的話,必須重寫run方法,在run方法中定義需要執行的任務。
1 2 3 4 5 6 7 8 9 10 11 12 |
class MyThread extends Thread{
private static int num
= 0 ;
public MyThread(){ num++;
}
@Override
public void run()
{
System.out.println( "主動建立的第" +num+ "個執行緒" );
}
}
|
建立好了自己的執行緒類之後,就可以建立執行緒物件了,然後通過start()方法去啟動執行緒。注意,不是呼叫run()方法啟動執行緒,run方法中只是定義需要執行的任務,如果呼叫run方法,即相當於在主執行緒中執行run方法,跟普通的方法呼叫沒有任何區別,此時並不會建立一個新的執行緒來執行定義的任務。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public class Test
{
public static void main(String[]
args) {
MyThread
thread = new MyThread();
thread.start();
}
}
class MyThread extends Thread{
private |