多線程是java語言區別於其它語言的一大特點。其它語言向C++的話如果要實現多線程的話,必須調用操作系統的多線程機制(我不確定自己記得對不對
了感興趣的自己上網查查看)。
在java5以前實現多線程有兩種方法(繼承Thread類和實現Runnable接口)
它們分別為:
使用new Thread()和new Thread(Runnable)形式
第一種直接調用thread的run方法,所以,我們往往使用Thread子類,即new SubThread()。
第二種調用
Runnable的run方法。
第一種:
new Thread(){}.start();這表示調用Thread子類對象的run方法,new Thread(){}表示一個Thread的匿名子類的實例對象,子類加上run方法后的代碼如下:
new Thread(){
public void run(){
}
}.start();
第二種:
new Thread(
new Runnable(){}
).start();
這表示調用Thread對象接受的Runnable對象的run方法,new Runnable(){}表示一個Runnable的匿名子類的實例對象,
runnable的子類加上run方法后的代碼如下:
new Thread(new Runnable(){
public void run(){
}
}
).start();
從java5開始,還有如下一些線程池創建多線程的方式:
package com.yonyou.test; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 測試類 * @author 小浩 * @創建日期 2015-3-2 */ public class Test{ public static void main(String[] args){ ExecutorService pool = Executors.newFixedThreadPool(3); for(int i=0;i<10;i++) { pool.execute(new Runnable(){public void run(){ System.out.println();}}); } Executors.newCachedThreadPool().execute(new Runnable(){public void run(){}}); Executors.newSingleThreadExecutor().execute(new Runnable(){public void run(){}}); } }