线程池
ExecutorService exec = Executors.newFixedThreadPool(100);
优点: 1、任务分配简单,任务少的情况下执行效率高 2、线程不需要控制,操作简单
缺点: 1、当每个任务执行时间很长的时候,占用的内存和cpu较多... 2、线程不需要控制,操作简单
推荐用法: 时间要求高效,每个任务的执行时间短,内存无要求,cpu无要求的情况
标准用法: 使用在要处理的任务不确定和随机的情况下,比如说 socket服务器端
阻塞队列
BlockingQueue queue = new ArrayBlockingQueue(10000);
优点: 1、时间上可以控制和计算,内存要求少,cpu要求小,性能不错..
缺点: 1、多线程,线程不好控制..性能调节需要丰富经验...线程数根据机器性能进行调优