多线程的三种实现方法
package com.test;
import java.util.concurrent.Callable;
public class Thread3 implements Callable<Integer> {
private Integer num1;
private Integer num2;
public Thread3(Integer num1,Integer num2){
this.num1=num1;
this.num2=num2;
}
@Override
public Integer call() throws Exception {
Math.max(num1,num2);
return null;
}
}
package com.test;
import org.junit.Test;
import java.util.concurrent.*;
public class Main {
/*public static void main(String[] args) {
System.out.println(Math.max(10,11));
}*/
@Test
public void multithreading() throws Exception {
Thread3 t1= new Thread3(55,111);
FutureTask futureTask= new FutureTask(t1);
Thread3 t2= new Thread3(55,111);
FutureTask futureTask2= new FutureTask(t2);
//线程池
ExecutorService service= Executors.newScheduledThreadPool(10);
service.submit(t1);
service.submit(t2);
service.shutdown();
service.shutdown();
System.out.println(futureTask.get());
System.out.println(futureTask2.get());
}
}