package com.kang.multithread;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* @author klr
* @create 2020-09-14-12:59
*/
public class ThreadTest {
public static void main(String[] args) throws ExecutionException, InterruptedException {
//1 thread
Thread t = new Thread("1"){
@Override
public void run() {
System.out.println(1);
}
};
t.start();
//2 runnable
Runnable runnable = () -> System.out.println(2);
runnable.run();//主线程执行
Thread t1 = new Thread(runnable,"2");//其他线程执行
t1.start();
//3 futuretask
//integer是返回类型
FutureTask<Integer> futureTask = new FutureTask(new Callable<Integer>() {
@Override
public Integer call() throws Exception {
System.out.println(3);
Thread.sleep(1000);
return 100;
}
});
// futureTask.run();//主线程执行
Thread t2 = new Thread(futureTask);//交给其他线程执行
t2.start();
System.out.println(futureTask.get()+"1");//主线程会一直阻塞在这等结果
}
}
创建线程的三种方法
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。