上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 25 下一页
摘要: Callable接口与Runnable接口对比的主要优点是Callable接口可以通过Future获取返回值。但是Future接口调用get()方法取得结果时是阻塞的,如果调用Future对象的get()方法时任务尚未执行完,则调用get()方法时一直阻塞到此任务完成。如果前面的任务耗时很多,则后面 阅读全文
posted @ 2016-07-14 20:29 商商-77 阅读(434) 评论(0) 推荐(0)
摘要: 类ThreadPoolExecutor最常使用的构造方法是 corePoolSize 线程池中所保存的线程数,包括空闲线程,也就是核心池的大小。当提交一个任务到线程池时,线程池会创建一个线程来执行任务,即使其他空闲的基本线程能够执行新任务也会创建线程,等到需要执行的任务数大于线程池基本大小时就不再创 阅读全文
posted @ 2016-07-14 20:28 商商-77 阅读(672) 评论(0) 推荐(0)
摘要: 合理利用线程池能够带来三个好处 1. 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2. 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 3. 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以 阅读全文
posted @ 2016-07-14 20:27 商商-77 阅读(287) 评论(0) 推荐(0)
摘要: arriveAndAwaitAdvance()方法 arriveAndAwaitAdvance()作用是当前线程已经到达屏障,在此等待一段时间,等条件满足后继续向下一个屏障执行。 程序运行结果如下: A、B线程会等待C线程一起到达屏障点,然后一起继续向下执行。 对以上代码做如下修改: 重新运行程序, 阅读全文
posted @ 2016-07-14 20:26 商商-77 阅读(385) 评论(0) 推荐(0)
摘要: CyclicBarrier类似于CountDownLatch也是个计数器,不同的是CyclicBarrier数的是调用了CyclicBarrier.await()进入等待的线程数,当线程数达到了CyclicBarrier初始时规定的数目时,所有进入等待状态的线程被唤醒并继续。 CyclicBarri 阅读全文
posted @ 2016-07-14 20:25 商商-77 阅读(168) 评论(0) 推荐(0)
摘要: Java多线程编程中经常会碰到这样一种场景:某个线程需要等待一个或多个线程操作结束(或达到某种状态)才开始执行。比如裁判员需要等待运动员准备好后才发送开始指令,运动员要等裁判员发送开始指令后才开始比赛。 java public class Player implements Runnable { p 阅读全文
posted @ 2016-07-14 20:23 商商-77 阅读(216) 评论(0) 推荐(0)
摘要: Exchanger可以使两个线程之间传输数据,比生产者/消费者模式使用wait/notify更加方便。 Exchanger中的exchange()方法具有阻塞的特点,此方法被调用后等待其他线程来取数据,如果没有其他线程取得数据,则一直阻塞等待。 运行程序,控制台打印结果如下: 阅读全文
posted @ 2016-07-14 20:22 商商-77 阅读(240) 评论(0) 推荐(0)
摘要: Semaphore中文含义是信号、信号系统,这个类的主要作用就是限制线程并发数量。如果不限制线程并发数量,CPU资源很快就会被耗尽,每个线程执行的任务会相当缓慢,因为CPU要把时间片分配给不同的线程对象,而且上下文切换也要耗时,最终造成系统运行效率大幅降低,所以限制并发线程的数量是很有必要的。 类S 阅读全文
posted @ 2016-07-14 20:19 商商-77 阅读(486) 评论(0) 推荐(0)
摘要: 某次处理一个case,发现线上库里有很多数据有问题。于是决定写一个job来将有问题的数据软删除掉。涉及到的两条SQL语句如下: 前面是选取出有问题的数据,后面是将有问题的数据进行软删除。 按照这两条SQL语句的思路写完程序之后上PPE环境测试,发现第一条select语句执行速度相当慢,平均每次花费3 阅读全文
posted @ 2016-07-12 21:54 商商-77 阅读(403) 评论(0) 推荐(0)
摘要: 需求:有一张表9亿多条数据,数据加索引总数据量61GB。考虑到这张表的大部分数据都不会再被使用并且大数据量可能影响整库的性能,所以决定将表里某一个时刻之前的数据备份到一张新表中,待备份完成后将旧表中已经备份的数据删除。由于数据量太大,不适合让DBA直接做备份。 方案1 main线程分页读取旧表数据, 阅读全文
posted @ 2016-06-20 11:52 商商-77 阅读(348) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 25 下一页