标签:
在开发中使用线程,经常不经意间就new Thread()一个出来,然后发现,这样做不是很好,特别是很多线程同时处理的时候,会出现CPU被用光导致机器假死,线程运行完成自动销毁后,又复活的情况。
所以在这个时候,就需要使用到线程池。。
线程池就是类似数据库连接池,限定一个规定大小的连接数(线程数),然后,需要处理的线程直接调用连接池执行线程。当插入的线程个数超过线程池个数的时候,就会排队等待。。。
线程池不需要到别的地方找,JDK就自带有一个挺不错的池:java.util.concurrent.ExecutorService。
下面是个线程池工具类。。
1 package com.iafclub.jrrestServer.thread; 2 3 import java.util.concurrent.ExecutorService; 4 import java.util.concurrent.Executors; 5 6 /**线程池 7 * 8 * @author chenweixian 9 * 10 */ 11 public class ThreadPool{ 12 private static ThreadPool threadPool; 13 // 线程池 14 private ExecutorService executorService = null; 15 16 private ThreadPool(){ 17 // 线程池加载10个线程 18 executorService = Executors.newFixedThreadPool(10); 19 } 20 21 public static synchronized ThreadPool getInstance(){ 22 if (threadPool == null){ 23 threadPool = new ThreadPool(); 24 } 25 return threadPool; 26 } 27 28 /**执行线程 29 * 30 * @param thread 31 */ 32 public void threadDo(Thread thread){ 33 executorService.submit(thread); 34 } 35 36 }
标签:
原文地址:http://www.cnblogs.com/a393060727/p/5569028.html