线程池的使用
JDK 5.0起提供了线程池相关APl: ExecutorService和Executors
ExecutorService:真正的线程池接口。常见子类ThreadPoolExecutor
void execute(Runnable command)︰执行任务/命令,没有返回值,一般用来执行Runnable
FuturesT> submit(Callable task):执行任务,有返回值,一般又来执 行Callable
void shutdown()∶关闭连接池
Executors:工具类、线程池的工厂类,用于创建并返回不同类型的线程池
上代码:
package com.wu;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
//测试线程池
public class TestPool {
public static void main(String[] args) {
// 1.创建服务,创建爱你线程池
//newFixedThreadPool:线程池大小
ExecutorService service = Executors.newFixedThreadPool(10);
//执行
service.execute(new MyThread());
service.execute(new MyThread());
service.execute(new MyThread());
service.execute(new MyThread());
//2.关闭线程池
service.shutdown();
}
}
class MyThread implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}
执行结果:
pool-1-thread-3
pool-1-thread-2
pool-1-thread-1
pool-1-thread-4
实现Callable接口创建线程,也是类似的操作;
link