package duoxiancheng;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class UseThread {
public static void main(String[] args) {
//MyThread myThread = new MyThread();
//myThread.start();
//Thread thread = new Thread(new MyRunnable());
//thread.start();
FutureTask<Integer> futureTask = new FutureTask<Integer>(new MyCallable());
new Thread(futureTask).start();
for(int i = 0;i < 10;i++){
System.out.println(Thread.currentThread().getName() + i);
}
try {
int sum = futureTask.get();
System.out.println(sum);
} catch (InterruptedException | ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class MyThread extends Thread{
public void run(){
for(int i = 0;i < 10;i++){
System.out.println(Thread.currentThread().getName() + i);
}
}
}
class MyRunnable implements Runnable{
@Override
public void run() {
for(int i = 0;i < 10;i++){
System.out.println(Thread.currentThread().getName() + i);
}
}
}
class MyCallable implements Callable<Integer>{
@Override
public Integer call() throws Exception {
int sum = 0;
for(int i = 0;i < 10;i++){
System.out.println(Thread.currentThread().getName() + i);
sum+=1;
}
return sum;
}
}
JAVA学习-2 多线程的三种实现方式
猜你喜欢
转载自blog.csdn.net/qq_39830579/article/details/102244653
今日推荐
周排行