java實現多執行緒的方法
Java虛擬機器允許應用程式併發的執行多個執行緒,在java中實現多執行緒的方法由以下三種:
1. 實現Runnable介面,並且實現該介面的run()方法。主要步驟如下
1.1 自定義類並且實現Runnable介面,實現run()方法。
1.2 建立Thread物件,用實現Runnable介面的物件作為引數例項化該Thread物件。
1.3 呼叫Thread的start()方法。
舉例說明
//自定義類並且實現Runnable介面,實現run()方法
class MyThread implements Runnable
{
public void run()
{
System.out.print("Thread body");
}
}
public class Test
{
public static void main(String[] args)
{
MyThread thread = new MyThread();
//建立Thread物件,用實現Runnable介面的物件作為引數例項化該Thread物件。
Thread t = new Thread(thread);
//呼叫Thread的start()方法。
t.start();
}
}
2. 繼承Thread類,重寫run()方法。
Thread本質上是實現了Runnable介面的一個例項,代表一個執行緒的例項,並且啟動執行緒的唯一方法為呼叫Thread類的start()方法。這種方法是通過自定義繼承自Thread的自定類,並重寫run()方法實現。舉例如下:
//自定義類並繼承自Thread類,實現run()方法
class MyThread extends Thread
{
public void run()
{
System.out.print("Method two!");
}
}
public class Test
{
public static void main(String[] args)
{
MyThread thread = new MyThread();
thread.start();
}
}
3. 實現Callable介面,重寫call()方法。
首先比較Callable介面與Runnable介面的不同點:
(1)Callable可以在任務結束的時候返回一個值,Runnable無返回值;
(2)Callable中的call()方法可以丟擲異常,而Runnable的run()方法不能丟擲異常;
(3)執行Callable可以拿到一個Future物件,Future物件表示非同步計算的結果。
此方法實現多執行緒舉例:
import java.util.concurrent.*;
public class CallableAndFuture
{
//建立執行緒類
public static class CallableTest implements Callable<String>
{
public String call() throws Exception
{
return "Ni Hao";
}
}
public static void main(String[] args)
{
ExecutorService threadPool = Executors.newSingleThreadExecutor();
//啟動執行緒
Future<String>future = threadPool.submit(new CallableTest());
try
{
System.out.println("wating thread to finish!");
System.out.println(future.get());
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
相關文章
- Java多執行緒【三種實現方法】Java執行緒
- Java多執行緒的實現Java執行緒
- Java多執行緒實現方式Java執行緒
- Java實現多執行緒的三種方式Java執行緒
- Java高併發與多執行緒(二)-----執行緒的實現方式Java執行緒
- Java面試之Java中實現多執行緒有幾種方法Java面試執行緒
- Java多種方法實現等待所有子執行緒完成再繼續執行Java執行緒
- Java建立多執行緒的幾種方式實現Java執行緒
- Java之實現多執行緒的方式三:實現Callable介面(結合執行緒池使用)Java執行緒
- Java之實現多執行緒的方式二:實現Runnable介面Java執行緒
- Java建立多執行緒的一種方法Java執行緒
- 使用Java實現多執行緒程式設計Java執行緒程式設計
- java 多執行緒之使用 interrupt 停止執行緒的幾種方法Java執行緒
- Java多執行緒並行處理任務的實現Java執行緒並行
- 多執行緒(五)---執行緒的Yield方法執行緒
- Java多執行緒之守護執行緒實戰Java執行緒
- 如何實現多執行緒執行緒
- Java多執行緒-執行緒中止Java執行緒
- 【Java多執行緒】執行緒安全的集合Java執行緒
- Java多執行緒-執行緒池的使用Java執行緒
- 【Java多執行緒】輕鬆搞定Java多執行緒(二)Java執行緒
- 多執行緒實現多工二執行緒
- 多執行緒實現多工一執行緒
- Java 執行緒池中的執行緒複用是如何實現的?Java執行緒
- Java多執行緒檔案分片下載實現Java執行緒
- java——多執行緒Java執行緒
- java多執行緒Java執行緒
- Java - 多執行緒Java執行緒
- java 多執行緒Java執行緒
- java多執行緒之執行緒的基本使用Java執行緒
- 【Java】【多執行緒】執行緒的生命週期Java執行緒
- Java多執行緒之執行緒中止Java執行緒
- Java多執行緒-執行緒狀態Java執行緒
- Java多執行緒-執行緒通訊Java執行緒
- java 多執行緒守護執行緒Java執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- java多執行緒9:執行緒池Java執行緒
- 【java多執行緒】(二)執行緒停止Java執行緒
- java執行緒實現方式Java執行緒