【多线程】
文章平均质量分 85
Double=Eggs
衣带渐宽终不洗,熬夜熬得人憔悴
展开
-
线程池ThreadPoolExecutor
一个任务通过 execute(Runnable)方法被添加到线程池,任务就是一个 Runnable类型的对象,任务的执行方法就是 Runnable类型对象的run()方法。一般任务除了处理方式外,还需要处理的数据,处理的数据通过构造方法传给任务。当一个任务通过execute(Runnable)方法欲添加到线程池时: 1、如果此时线程池中的数量小于corePoolSize(线程池最小活跃线程数量),即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。 2、如果此原创 2017-08-07 20:17:55 · 380 阅读 · 4 评论 -
【多线程】newScheduledThreadPool线程池比较scheduleAtFixedRate和scheduleWithFixedDelay
上回说到,newScheduledThreadPool可以用来执行定时或者是周期性工作,但是newScheduledThreadPool里面有两个比较类似的schedule方法,分别是scheduleAtFixedRate和scheduleWithFixedDelay。那么整两个之间有什么不同呢? 例子one: public static void main(String[] args) {原创 2017-08-08 10:51:00 · 2556 阅读 · 7 评论 -
【多线程】五种线程池简介
针对不同的情况,我们可以根据不同线程池的特性来实现不同的业务。那线程池总共分为哪几种呢? (1)、newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 (2)、newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 (3)、newSingleThreadExe原创 2017-08-08 10:14:57 · 939 阅读 · 7 评论 -
HashMap、HashTable与ConcurrentHashMap区别
线程不安全的HashMap 在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。例如,执行如下代码会引起死循环。[java] view plain copyfinal HashMap<String, String> map = new HashMap<String, String>(2); ...原创 2018-03-13 13:57:22 · 515 阅读 · 1 评论