Java线程池
程序员文章站
2022-05-04 17:53:36
...
Google搜索“图片”的时候,会加载大量的图片,
如果把每一张图片看作一个线程的话,一瞬间会产生大量的线程,当图片加载完之后,大量线程就会被销毁,这样会增加系统的开销,降低系统的性能。线程池的出现,为了有效的重复利用线程。
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()返回一个包含指定数目线程数的线程池,如果任务数量多于线程数目的话,那么没有执行的任务必须等待,直到任务完成为止。
void |
shutdown() 启动一次顺序关闭,执行以前提交的任务,但不接受新任务。 |
上一篇: 四大网络抓包神器,总有一款适合你~
下一篇: 线程池的四种阻塞队列与四种任务拒绝策略