執行緒池的使用(Callable介面)
阿新 • • 發佈:2019-02-13
public class test04CallExecutor {
public static void main(String[] args) {
// TODO Auto-generated method stub
ExecutorService service = Executors.newFixedThreadPool(2);//包含2個執行緒物件
//建立Callable物件
MyCallable c = new MyCallable();
//從執行緒池中獲取執行緒物件,然後呼叫MyRunnable中的run()
service.submit(c);
//再獲取個教練
service.submit(c);
service.submit(c);
//注意:submit方法呼叫結束後,程式並不終止,是因為執行緒池控制了執行緒的關閉。將使用完的執行緒又歸還到了執行緒池中
//關閉執行緒池
//service.shutdown();
}
}
class MyCallable implements Callable {
@Override
public Object call() throws Exception {
System.out.println("我要一個教練:call" );
Thread.sleep(2000);
System.out.println("教練來了: " +Thread.currentThread().getName());
System.out.println("教我游泳,交完後,教練回到了游泳池");
return null;
}
}