2013年4月9日

ThreadPoolExecutor使用介绍

摘要: 任务就是一个Runnable类型的对象,任务的执行方法就是Runnable类型对象的run()方法。当一个任务通过execute(Runnable)方法欲添加到线程池时:l如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。l如果此时线程池中的数量等于corePoolSize,但是缓冲队列workQueue未满,那么任务被放入缓冲队列。l如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量小于maximumPoolSize,建新的线程来处理被添加的任务。l如果此时线程池中的数量 阅读全文

posted @ 2013-04-09 20:55 善敗將軍 阅读(188) 评论(0) 推荐(0) 编辑

BlockingQueue

摘要: 前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示:从上图我们可以很清楚看到,通过一个共享的队列,可以使得数据由队列的一端输入,从另外一端输出;常用的队列主要有以下两种:(当然通过不同的实现方式,还可以延伸出很多不同类型的队列,Dela. 阅读全文

posted @ 2013-04-09 20:16 善敗將軍 阅读(156) 评论(0) 推荐(0) 编辑

导航