线程池提交任务
package igeek02;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class MyThreadPoolTest {
public static void main(String[] args) {
ExecutorService es=Executors.newFixedThreadPool(3);
MyRunnable myRunnable=new MyRunnable();
es.submit(myRunnable);
MyCallAble mAble=new MyCallAble();
Future<String> rFuture=es.submit(mAble);
String result = null;
try {
result = rFuture.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
System.out.println(result);
es.shutdown();
}
}
实现runnable接口
package igeek02;
public class MyRunnable implements Runnable{
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
try {
Thread.currentThread().sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
实现callable接口
package igeek02;
import java.util.concurrent.Callable;
public class MyCallAble implements Callable<String>{
@Override
public String call() throws Exception {
return "线程任务的返回值结果!";
}
}