线程池
Posted lyr999736
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程池相关的知识,希望对你有一定的参考价值。
线程池:java语言为我们提供了一个管理线程的类型ExecutorService。
概念:创建多个线程,集合到一起就是线程池。
作用:自动创建线程,重用线程。
当创建大量的线程时,在线程结束后会有内存开销,线程的频繁切换也会造成大量的开销,很容易系统崩溃,所以设计了线程池。
线程池对象为我们提供了固定数量的线程,如果有多个任务,可以交给线程池,由线程池来分配任务,交给空闲的线程来执行任务,当任务执行完毕,线程不结束,回到空闲状态。
如何把集合对象变成安全的?
工具类Collections中提供了synchronizedList,synchronizedSet,synchronizedMap方法,将集合对象变成安全的。
创建线程池的四种方法:
(1)Executors.newCachedThreadPool();
* 创建缓存线程池,会根据传来的任务的多少来
* 决定线程池的线程的个数,此线程池的线程最多为max_value
* 当任务超出了此线程数,就会处于排队情况
(2)Executors.newFixedThreadPool(10);
*此方法获取一个有size个线程的线程池
* 此线程池下最多执行size个任务
* 其他的处于队列中
(3)Executors.newScheduledThreadPool(12);
* 此方法可以指定线程池中线程的数量
* 可以设置延迟效果
(4)Executors.newSingleThreadExecutor();
*创建含有一个线程的线程池
以上是关于线程池的主要内容,如果未能解决你的问题,请参考以下文章