使用线程池,将实现Runnable接口类的对象作为参数
Executors:线程池创建工厂类
public static ExecutorService newFixedThreadPool(int nThreads):返回线程池对象
ExecutorService:线程池类
Future<?> submit(Runnable task):获取线程池中的某一个线程对象,并执行
@Test
public void test04() {
//创建线程池
ExecutorService service = Executors.newFixedThreadPool(2);
MyThreadCreate02 myThread = new MyThreadCreate02();
//从线程池中获取线程对象,然后调用MyThreadCreate02中的run()方法
service.submit(myThread);
//每调用一次就获取一个线程
service.submit(myThread);
//关闭线程池
service.shutdown();
}
使用线程池,将实现Callable接口类的对象作为参数
Callable接口:与Runnable接口功能相似,用来指定线程的任务。其中的call()方法, 用来返回线程任务执行完毕后的结果,call方法可抛出异常
public class MyCallable implements Callable{
@Override
public Object call() throws Exception {
for(int i = 0;i<50;i++) {
System.out.println("实现Callable接口"+i);
}
return null;
}
}
@Test
public void test05() {
//创建线程池
ExecutorService service = Executors.newFixedThreadPool(2);
MyCallable callable = new MyCallable();
//从线程池中获取线程
service.submit(callable);
//关闭线程池
service.shutdown();
}