打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java实现的线程池、消息队列功能方法

Java实现的线程池、消息队列功能方法

作者: 佚名,  出处:IT专家网, 责任编辑: 谢妍妍, 
2010-02-26 07:00
  本文介绍Java实现的线程池、消息队列功能方法。

  ThreadPoolManager类:负责管理线程池,调用轮询的线程来访问字符串缓冲区的内容,维护缓冲区,当线程池溢出时抛出的Runnable任务被加入到字符缓冲区。


 public class ThreadPoolManager
  {
  private static ThreadPoolManager tpm = new ThreadPoolManager();
  // 线程池维护线程的最少数量
  private final static int CORE_POOL_SIZE = 4;
  // 线程池维护线程的最大数量
  private final static int MAX_POOL_SIZE = 10;
  // 线程池维护线程所允许的空闲时间
  private final static int KEEP_ALIVE_TIME = 0;
  // 线程池所使用的缓冲队列大小
  private final static int WORK_QUEUE_SIZE = 10;
  // 消息缓冲队列
  Queue msgQueue = new LinkedList();
  // 访问消息缓存的调度线程
  final Runnable accessBufferThread = new Runnable()
  {
  public void run()
  {
  // 查看是否有待定请求,如果有,则创建一个新的AccessDBThread,并添加到线程池中
  if( hasMoreAcquire() )
  {
  String msg = ( String ) msgQueue.poll();
  Runnable task = new AccessDBThread( msg );
  threadPool.execute( task );
  }
  }
  };
  final RejectedExecutionHandler handler = new RejectedExecutionHandler()
  {
  public void rejectedExecution( Runnable r, ThreadPoolExecutor executor )
  {
  System.out.println(((AccessDBThread )r).getMsg()+"消息放入队列中重新等待执行");
  msgQueue.offer((( AccessDBThread ) r ).getMsg() );
  }
  };
  // 管理数据库访问的线程池
  final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(
  CORE_POOL_SIZE, MAX_POOL_SIZE, KEEP_ALIVE_TIME, TimeUnit.SECONDS,
  new ArrayBlockingQueue( WORK_QUEUE_SIZE ), this.handler );
  // 调度线程池
  final ScheduledExecutorService scheduler = Executors
  .newScheduledThreadPool( 1 );
  final ScheduledFuture taskHandler = scheduler.scheduleAtFixedRate(
  accessBufferThread, 0, 1, TimeUnit.SECONDS );
  public static ThreadPoolManager newInstance()
  {
  return tpm;
  }

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
javaWeb 使用线程池+队列解决“订单并发”问题
Swing之EventQueue简介
JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
JavaThread应该注意的问题
Java之ThreadPoolExcutor和四种常见的线程池
Java并发编程(19):并发新特性
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服