使用Callable和Future创建线程

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

public class TestThread {	
	public static void main(String[] args){
		TestThread rt=new TestThread();
		FutureTask task=new FutureTask( (Callable)//FutuereTask类是Future接口的一个实现类
				()->{
			int i=0;
			for(;i<100;++i){
				System.out.println(Thread.currentThread().getName()+"  "+i);
			}
			return i;
		});
		for(int i=0;i<100;++i){
			System.out.println(Thread.currentThread().getName()+"-----------"+i);//
			
			if(i==20){
				new Thread(task,"有返回值的线程").start();
			}
		}
		try{
			System.out.println("子线程的返回值"+task.get());
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
}

/*观察到每次运行程序 线程并不是马上启动 启动后的执行顺序也并不完全一样
在线程结束后会返回返回值
*/

你可能感兴趣的:(Java学习笔记)