public class ThreadTest {
public static ExecutorService service = Executors.newFixedThreadPool(10);
public static void main(String[] args) throws ExecutionException, InterruptedException {
System.out.println("main_______start_______");
/**
* 1、继承Thread
* 2、实现Runnable接口
* 3、实现Callable接口+FutureTask(可以拿到返回结果,可以处理异常)
* 4、线程池
*/
// Thread01 thread01 = new Thread01();
// thread01.start();//启动线程
// Runnable01 runnable01 = new Runnable01();
// new Thread(runnable01).start();
// final FutureTask<Integer> futureTask = new FutureTask<>(new Callable01());
// new Thread(futureTask).start();
// //阻塞等待整个线程执行完成获取等待结果
// Integer integer = futureTask.get();
// System.out.println(integer);
//当前系统中池只有一两个,每个异步任务直接提交给线程池,让线程池里的线程执行
// ExecutorService executorService = Executors.newFixedThreadPool(10);
service.execute(new Runnable01());
System.out.println("main_______end_______");
}
public static class Thread01 extends Thread{
@Override
public void run() {
System.out.println("当前线程:"+Thread.currentThread().getId());
int i=10/2;
System.out.println("运行结果:"+i);
}
}
public static class Runnable01 implements Runnable{
@Override
public void run() {
System.out.println("当前线程:"+Thread.currentThread().getId());
int i=10/2;
System.out.println("运行结果:"+i);
}
}
public static class Callable01 implements Callable<Integer>{
@Override
public Integer call() throws Exception {
System.out.println("当前线程:"+Thread.currentThread().getId());
int i=10/2;
System.out.println("运行结果:"+i);
return i;
}
}
}
java创建线程的四种方法
最新推荐文章于 2024-08-07 17:51:08 发布