java多线程—线程池
一.概述
线程池是管理Runnable线程的一个集合。当我们需要启动线程执行多个任务时,可将任务传递给线程池,不必每次执行任务是都创建一个新线程,只要池中有空闲线程,任务就会随机分配给其中一个线程执行。在线程池内部,任务被插入到阻塞队列中,池中的线程从该阻塞队列中出列。当一个新任务插入队列时,其中一个空闲线程就会启动执行。
二.线程池使用:
java.util.concurrent包中附带内置线程池,下面就是一个简单的线程池的实现。
public class ExectorServiceTest {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(10);
ThreadTest test1 = new ThreadTest();
test1.i = 10;
executorService.execute(test1);
ThreadTest test2 = new ThreadTest();
test2.i = 20;
executorService.execute(test2);
executorService.shutdown();
}
}
class ThreadTest implements Runnable{
public int i;
@Override
public void run() {
System.out.println(i);
}
}