版权声明:如需转载请标明出处 https://blog.csdn.net/yj201711/article/details/86551884
Executor框架:支持并发编程的线程池
Executors
1、ExecutorService newFixedThreadPool(int initThread)
在线程池中,创建固定数目的线程。当执行任务的时候,如果线程池中由空闲线程,则直接使用该线程来执行任务,如果没有空闲线程,则任务处于阻塞状态,等待线程空闲。
2、ExecutorService newCacheThreadPool();
在线程池中,创建不确定的线程,当执行任务时,如果由空闲线程,则执行使用该线程执行任务,如果没有空闲线程,则创建新的线程,执行当前任务
3、ExecutorService newSingleThreadExecutor();
在线程池中,始终只有一个线程对象,来执行任务。当有任务需要执行时,如果线程处于空闲状态则立即执行,否则任务处于阻塞状态。
4、ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
在线程池中可执行的任务
实现了Runnable接口的任务
public void run(){
}
实现了Callable接口的任务
public v call(){
return v;
}
package org.lanqiao.runnable.demo;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class RunnableTaskDemo {
public static void main(String[] args) {
ExecutorService es = Executors.newCachedThreadPool();
for(int i = 0 ; i < 10 ; i++) {
es.submit(new RunnableTask());
}
es.shutdown();
}
}
class RunnableTask implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}