02 2017 档案

为什么要用线程池?
摘要:为什么要用线程池1? 服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。 构建服务器应用程序的一个过于简单的模型应该是:每当一个请求到达就创建一个新线程,然后在新线程中为请求服务。实际上,对于原型开发这种方法工作得很好,但如果试图部署以这种方式运行的服务器应用程序,那么 阅读全文

posted @ 2017-02-09 18:00 小星星☆★ 阅读(9932) 评论(3) 推荐(4)

一个request请求然后锁定等待异步接口处理结果
摘要:private ConcurrentHashMap relation = new ConcurrentHashMap(); protected void doGet(HttpServletRequest request, final HttpServletResponse response) { final String id = request.getParameter("id"... 阅读全文

posted @ 2017-02-09 14:22 小星星☆★ 阅读(803) 评论(0) 推荐(0)

双端队列实现串行处理实现并发
摘要:ArrayDeque<Runnable> 通过try和finally机制,我们将传入的Runnable对象重新封装成一个新的Runnable对象,在新的Runnable的run方法的try块中执行Runnable的run方法,在finally中调用执行队列头部Runnable对象出队列,并放入线程池 阅读全文

posted @ 2017-02-08 17:34 小星星☆★ 阅读(208) 评论(0) 推荐(0)

线程池创建线程的方式一定效率高吗?
摘要:java多线程的效率就一定高吗? import java.util.LinkedList; public class ThreadPool extends ThreadGroup { private boolean isClosed = false; // 线程池是否关闭 private Linke 阅读全文

posted @ 2017-02-08 15:59 小星星☆★ 阅读(1362) 评论(0) 推荐(0)

PriorityBlockingQueue 和 Executors.newCachedThreadPool()
摘要:1、PriorityBlockingQueue里面存储的对象必须是实现Comparable接口。 2、队列通过这个接口的compare方法确定对象的优先级priority。 规则是:当前和其他对象比较,如果compare方法返回负数,那么在队列里面的优先级就比较高。 下面的测试可以说明这个断言: 查 阅读全文

posted @ 2017-02-08 14:48 小星星☆★ 阅读(567) 评论(0) 推荐(0)

核心记账业务可用jdk7的PriorityBlockingQueue优先阻塞队列结合乐观锁实现
摘要:-- 1、优先级阻塞队列 当前核心记账业务是悲观锁实现,但考虑到高并发和死锁的问题,可以用PriorityBlockingQueue优先阻塞队列结合乐观锁实现,对于并发时出现锁无法update时可以重新进入队列并调整优先级进行记账处理。 新方案:乐观锁:PriorityBlockingQueue<T 阅读全文

posted @ 2017-02-07 14:47 小星星☆★ 阅读(857) 评论(0) 推荐(0)

导航