1. 程式人生 > >java多執行緒系列01——多執行緒基礎

java多執行緒系列01——多執行緒基礎

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class NewThreadDemo {
	public static void main(String[] args) throws InterruptedException, ExecutionException {
		Thread t1 = new Thread(){//第一種方式
			@Override
			public void run() {
				System.out.println("new Thread 1");
			}
		};//建立執行緒
		
		t1.start();//啟動執行緒
	//	System.out.println(t1.getName());
		
		Thread t2 = new Thread(new Runnable() {//第二種方式
			@Override
			public void run() {
				System.out.println("new Thread 2");
			}
		});
		
		t2.start();
		//重要方法:Thread.currentThread()
		//System.out.println(Thread.currentThread().getName());
		//第三種方式
		FutureTask<String> ft = new FutureTask<String>(new Callable<String>() {
			
			@Override
			public String call() throws Exception {
				System.out.println("new Thread 3");
				return "aaaa";
			}
		});
		
		Thread t3 = new Thread(ft);
		t3.start();
		String result = ft.get();
		System.out.println(result);
		
	}
}

總結

建立執行緒的方式:

       1.繼承Thread類,並複寫run方法,建立該類物件,呼叫start方法開啟執行緒。

       2.實現Runnable介面,複寫run方法,建立Thread類物件,講Runnable子類物件傳遞給Thread類物件。呼叫start方法開啟執行緒。

       第二種方式好,將執行緒物件和執行緒任務物件分離開。降低了耦合性,利於維護

       3.建立FutureTask物件,建立Callable子類物件,複寫call(相當於run)方法,將其傳遞給FutureTask物件(相當於一個Runnable)。

       建立Thread類物件,將FutureTask物件傳遞給Thread物件。呼叫start方法開啟執行緒。這種方式可以獲得執行緒執行完之後的返回值。