前言
我总结了各种去创建线程的方法,分享给大家。并给出一些创建方式的代码。
创建方法总结
给出一些创建方式的代码
第6种
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
class MyCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
int sum=0;
for(int i=1;i<=100;i++){
sum=sum+i;
}
return sum;
}
}
public class demo49 {
public static void main(String[] args) throws InterruptedException, ExecutionException {
MyCallable myCallable=new MyCallable();
FutureTask<Integer> futureTask=new FutureTask<>(myCallable);
Thread t=new Thread(futureTask);
t.start();
t.join();
System.out.println("sum="+futureTask.get());
}
}
第7种
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class demo48 {
public static void main(String[] args) throws InterruptedException, ExecutionException {
Callable<Integer> callable=new Callable<Integer>() {
@Override
public Integer call() throws Exception {
int sum=0;
for(int i=1;i<=100;i++){
sum=sum+i;
}
return sum;
}
};
FutureTask<Integer> futureTask=new FutureTask<>(callable);
Thread t=new Thread(futureTask);
t.start();
t.join();
System.out.println("sum="+futureTask.get());
}
}
第8种
import java.util.concurrent.*;
public class demo50 {
public static void main(String[] args) throws ExecutionException, InterruptedException {
ExecutorService executorService=Executors.newFixedThreadPool(1);
FutureTask<Integer> futureTask= (FutureTask<Integer>) executorService.submit(new Callable<Integer>(){
@Override
public Integer call() throws Exception {
int sum=0;
for(int i=1;i<=100;i++){
sum=sum+i;
}
return sum;
}
});
executorService.shutdown();
System.out.println("sum="+futureTask.get());
}
}
结语
分享到此结束~