java的自带线程池及相关类与接口都在java.util.concurrent包内,主要用到的线程池有两种,ThreadPoolExecutor和ScheduledThreadPoolExecutor,直接用这两个类需要向构造方法传入很多参数进行配置,为了方便,可以用Executors工厂的工厂方法获得线程池对象,工厂方法会提供默认配置,一般可以满足需求了。这里演示一个工厂方法的例子。
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class BuiltInThreadPool {
public static void main(String[] args) {
ExecutorService threadPool = Executors.newCachedThreadPool();
for (int i = 0; i < 5; i++) {
Runnable task = new Runnable() {
@Override
public void run() {
System.out.println("任务被执行");
}
};
threadPool.execute(task);
}
threadPool.shutdown();
}
}
执行完这段代码,咱也算是用过线程池的人了。