創建線程的三種方式

package com.business.thread;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/*
 *創建線程和啓動線程的三種方式:
 *1、繼承Thread
 *2、繼承Runnable
 *3、繼承Callable
 *4、線程安全的停止
 */
public class NewThread {
	private static class extentsThread extends Thread{
		public void run() {
			super.run();
			System.out.println(Thread.currentThread().getName());
		}
	}
	
	private static class implementsRunnable implements Runnable{

		public void run() {
			System.out.println(Thread.currentThread().getName());		
		}		
	}
	
	private static class implementsCallable implements Callable<String>{

		public String call() throws Exception {
			return Thread.currentThread().getName();
		}
		
	}
	
	public static void main(String[] args) throws InterruptedException, ExecutionException {
		extentsThread thread1 = new extentsThread();
		thread1.start();
		//interrupt
		thread1.interrupt();
		
		implementsRunnable thread2 = new implementsRunnable();
		new Thread(thread2).start();
		
		implementsCallable thread3 = new implementsCallable();
		FutureTask<String> futureTask = new FutureTask<>(thread3);
		new Thread(futureTask).start();
		String result = futureTask.get();
		System.out.println(result);
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章