存在原理
FutureTask是為了彌補(bǔ)Thread的不足而設(shè)計的,它可以讓程序員準(zhǔn)確地知道線程什么時候執(zhí)行完成并獲得到線程執(zhí)行完成后返回的結(jié)果(如果有需要)根资。
場景
4個同學(xué), 1同學(xué) 1+2...5 , 2同學(xué) 10+11+12....50, 3同學(xué) 60+61+62历涝, 4同學(xué) 100+200
第2個同學(xué)計算量比較大击奶, FutureTask單開啟線程給2同學(xué)計算,先匯總 1 3 4 聚请,最后等2同學(xué)計算位完成,統(tǒng)一匯總
代碼
package com.myCallable;
import org.junit.Test;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
class MyThread implements Callable {
@Override
public Integer call() throws Exception {
System.out.println(Thread.currentThread().getName()+" come in callable");
Thread.sleep(5000);
return 200;
}
}
public class MyCallableDemo {
@Test
public void test1() throws Exception{
FutureTask futureTask1 = new FutureTask(new MyThread());
futureTask1.run();
Thread.sleep(6000);
Object get = futureTask1.get(); // 阻塞直到取到結(jié)果
System.out.println("get"+get);
System.out.println("hah");
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者