欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java线程池

程序员文章站 2022-05-04 17:53:36
...

Google搜索“图片”的时候,会加载大量的图片,

Java线程池

Java线程池

如果把每一张图片看作一个线程的话,一瞬间会产生大量的线程,当图片加载完之后,大量线程就会被销毁,这样会增加系统的开销,降低系统的性能。线程池的出现,为了有效的重复利用线程。

Java线程池

Java线程池

ThreadPoolTest.java

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolTest {

	public static void main(String[] args) {
		ExecutorService pool = Executors.newFixedThreadPool(2); // 返回ExecutorService接口对象
		pool.submit(new MyRunnable());
		pool.submit(new MyRunnable());
		pool.submit(new MyRunnable());
		pool.submit(new MyRunnable());
		pool.submit(new MyRunnable());

		// 结束线程池
		pool.shutdown();
	}

}

MyRunnable.java

public class MyRunnable implements Runnable {

	@Override
	public void run() {
		for (int i = 1; i <= 100; i++) {
			System.out.println(Thread.currentThread().getName() + ":" + i);
		}
	}
}

注:newFixedThreadPool()返回一个包含指定数目线程数的线程池,如果任务数量多于线程数目的话,那么没有执行的任务必须等待,直到任务完成为止。 

Java线程池

void shutdown() 
          启动一次顺序关闭,执行以前提交的任务,但不接受新任务。