㈠ java創建線程的幾種方式,了解一下
第一種方式:使用Runnable介面創建線程
第二種方式:直接繼承Thread類創建對象
使用Runnable介面創建線程
1.可以將CPU,代碼和數據分開,形成清晰的模型
2.線程體run()方法所在的類可以從其它類中繼承一些有用的屬性和方法
3.有利於保持程序的設計風格一致
直接繼承Thread類創建對象
1.Thread子類無法再從其它類繼承(java語言單繼承)。
2.編寫簡單,run()方法的當前對象就是線程對象,可直接操作。
在實際應用中,幾乎都採取第一種方式
㈡ 用java編程:創建三個線程,分別顯示各自的開始運行時間及總運行時間
public class AThread extends Thread {
private String name;
public AThread(String name) {
this.name = name;
}
public void run() {
long startTime = System.currentMillis();
System.out.println(name + " start at : " + startTime);
Thread.sleep(1000);
System.out.println(name + " totoal cost : " + (System.currentMillis() - startTime));
}
}
public class Test {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
AThread t = new AThread("thread " + i);
t.start();
}
}
}
㈢ Java 如何創建100個Thread 線程
「創建100個線程」和「創建1個線程」是一樣的。
(如果不一樣,只可能是你問得唐突、不清晰)
你可以把100個線程放到一個數組中。
Thread threads[]=new Thread[100];
//然後逐個生成啟動
for(int i=0;i<100;i++){
threads[i]=new Thread(//put some runnable here );
threads[i].start();
}
㈣ java怎麼實現線程
1、繼承Thread類創建線程
Thread類本質上是實現了Runnable介面的一個實例,代表一個線程的實例。啟動線程的唯一方法就是通過Thread類的start()實例方法。start()方法是一個native方法,它將啟動一個新線程,並執行run()方法。這種方式實現多線程很簡單,通過自己的類直接extend Thread,並復寫run()方法,就可以啟動新線程並執行自己定義的run()方法。
2、實現Runnable介面創建線程
如果自己的類已經extends另一個類,就無法直接extends Thread,此時,可以實現一個Runnable介面。
3、實現Callable介面通過FutureTask包裝器來創建Thread線程
4、使用ExecutorService、Callable、Future實現有返回結果的線程
ExecutorService、Callable、Future三個介面實際上都是屬於Executor框架。返回結果的線程是在JDK1.5中引入的新特徵,有了這種特徵就不需要再為了得到返回值而大費周折了。而且自己實現了也可能漏洞百出。
可返回值的任務必須實現Callable介面。類似的,無返回值的任務必須實現Runnable介面。
執行Callable任務後,可以獲取一個Future的對象,在該對象上調用get就可以獲取到Callable任務返回的Object了。
注意:get方法是阻塞的,即:線程無返回結果,get方法會一直等待。
再結合線程池介面ExecutorService就可以實現傳說中有返回結果的多線程了。