06 2020 档案

摘要:参考: https://www.cnblogs.com/lemon-flm/p/7877898.html 阅读全文
posted @ 2020-06-11 20:49 向阳无痕 阅读(95) 评论(0) 推荐(0)
摘要:避免使用 Executors 来创建线程。 说明: Executors各个方法的弊端: 1)newFixedThreadPool和newSingleThreadExecutor: 主要问题是堆积的请求处理队列可能会耗费非常大的内存,甚至OOM。 2)newCachedThreadPool和newSc 阅读全文
posted @ 2020-06-11 20:45 向阳无痕 阅读(375) 评论(0) 推荐(0)
摘要:首先简单介绍下RateLimiter的使用, public void testAcquire() { RateLimiter limiter = RateLimiter.create(1); for(int i = 1; i < 10; i = i + 2 ) { double waitTime = 阅读全文
posted @ 2020-06-11 20:41 向阳无痕 阅读(312) 评论(0) 推荐(0)
摘要:参考: http://www.cnblogs.com/frinder6/p/5507082.html https://blog.csdn.net/m0_37822338/article/details/100010495 注意: Callable接口支持返回执行结果,此时需要调用FutureTask 阅读全文
posted @ 2020-06-11 20:40 向阳无痕 阅读(175) 评论(0) 推荐(0)
摘要:参考:http://www.360doc.com/content/20/0316/09/33260087_899509976.shtml 阅读全文
posted @ 2020-06-11 20:35 向阳无痕 阅读(161) 评论(0) 推荐(0)
摘要:在多线程中,有时候需要等待所有线程执行完成后才让继续往下执行,如查询结果汇总等。下面列举两种等待方式: 方式一: 利用 CountDownLatch 类完成。 示例: // 按任务总量创建计数器final CountDownLatch countDownLatch = new CountDownLa 阅读全文
posted @ 2020-06-09 18:05 向阳无痕 阅读(3057) 评论(0) 推荐(0)