JAVA学習-2 3のマルチスレッド実装

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;
	}
	
}
公開された57元の記事 ウォンの賞賛3 ビュー6199

おすすめ

転載: blog.csdn.net/qq_39830579/article/details/102244653