报课、招生咨询电话:010-51268840/41

首页 > 计算机考试 > JAVA考试认证 >
→论坛登陆 用户名  密码  
Java学习:线程池的简单构建

作者: 发布时间:2006-11-11 20:18:32 来源:希赛网
  现在服务器端的应用程序几乎都采用了“线程池”技术,这主要是为了提高系统效率。因为如果服务器对应每一个请求就创建一个线程的话,在很短的一段时间内就会产生很多创建和销毁线程动作,导致服务器在创建和销毁线程上花费的时间和消耗的系统资源要比花在处理实际的用户请求的时间和资源更多。线程池就是为了尽量减少这种情况的发生。
 
  下面我们来看看怎么用Java实现一个线程池。一个比较简单的线程池至少应包含线程池管理器、工作线程、任务队列、任务接口等部分。其中线程池管理器(ThreadPool Manager)的作用是创建、销毁并管理线程池,将工作线程放入线程池中;工作线程是一个可以循环执行任务的线程,在没有任务时进行等待;任务队列的作用是提供一种缓冲机制,将没有处理的任务放在任务队列中;任务接口是每个任务必须实现的接口,主要用来规定任务的入口、任务执行完后的收尾工作、任务的执行状态等,工作线程通过该接口调度任务的执行。
 
  一种就是以固定线程数目作为基准,让每一个线程的工作线程都处于无限循环中,利用Java中基类的nodify()与wait()进行协同工作。

  基本思想如下:

  在构建线程池的时候创建所有工作线程,并且让所有工作线程开始运行。
 
  public ThreadPool(int nPoolSize)
  {
   if(nPoolSize<=0)
   {
    nPoolSize=DEFAULT_POOL_SIZE;
   }
   m_ThreadList=new ArrayList();
   m_RunList=new LinkedList();
   for(int i=0;i<nPoolSize;i++)
   {
    WorkerThread temp=new WorkerThread(i+1);
    m_ThreadList.add(temp);
    temp.start();
   }
  }

  在工作线程的run()方法中用wait()进行等待,当线程处于wait()状态基本不占用CPU,这样所有工作线程都处于挂起状态,等待任务来唤醒。

  实现如下:

  while (true)
  {
   synchronized (m_RunList)
   {
    while (m_RunList.isEmpty())
    {
     //任务列表为空则进行等待,否则运行任务,并在本任务列表里面剔除任务
     try
     {
      m_RunList.wait();
     }
     catch (InterruptedException e) {}
    }
              r = (Runnable) m_RunList.removeFirst();
              file://System.out.println(m_nThreadID + ":Start");
              if (r == null)return;
   }
   try
   {
            r.run();
           }
           catch (Exception e) {}
  }

  以上代码就是一个工作线程主要代码。这个线程永远不会停止,只可能被挂起,或者运行任务。

    育路网
 
 
                                        
评论】【加入收藏夹】【 】【打印】【关闭
育路网2007年夏令营联展
 更多有关新闻:
 
·[作文雅思写作高分必读:小作文句子模 ·[资讯中心湖北:2008上半年英语等级考试(P
·[经验共享成考高分考生必备临场得分策略 ·[复习指导成考高起点历史复习方法
·[招生简章上海外国语大学07年成考招生简章 ·[考试指南日语等级考试总括
·[成考动态广东惠州08年成考复习大纲确定 ·[真题法律硕士考研辅导:民法代理真题
·[二级真题2002年9月二级笔试试卷C语言程序 ·[复习指导2008年法硕联考民法学必须掌握的
·[复习指导法律硕士考研辅导:民法案例解析 ·[三级真题计算机等级考试三级数据库知识考
·[招生信息2008全国各高校法律硕士排名榜 ·[四级真题计算机等级考试四级笔试样题
·[复习指导2008年法律硕士大纲解析及考试预 ·[一级真题全国计算机等级考试一级WPS Offi
发表评论
用户名: 密码:
验证码: 匿名发表
课程搜索:
选择分类:
课程关键字:
课程 学校
 2008年首都高校秋季招生
北京理工大学2008年招生简章
北京文理研修学院2008年招生简章
北京建设大学2008年招生简章
北京中山学院2008年招生简章
北京城市学院2008年招生简章
培黎职业学院2008年招生简章
北京金融学院2008年招生简章
北京吉利大学2008年招生简章
北方工商管理学院2008年招生简章
 本周推荐课程
·初中起点雅思半年脱产 ·启德雅思6分冲刺课程
·新概念1+2册慢速精讲课 ·环球新托福100分强化
·北文王长喜四级强化班 ·英语四、六级培训课程
·海文考研数学课程 ·海文考研英语课程
·北大企业管理高级研修班 ·清华企业领导人研修班
·中美高中生交换项目 ·北工大中加学院2+2本科
·劳动和社会保障部物流师 ·物业管理师职业培训
·市场营销经理国际资格 ·现场管理实务培训
清华大学留学
中法管理硕士预科班
课程咨询热线:010-51268840 51268841
 最新新闻
·成考高分考生必备临场得分策略
·县科技局认真组织实施机关公务员和事业单位工
·江苏扬州邗江区组织初任公务员培训
·2008年吉林省各级机关考录公务员网上报名须知
·山东6名监督员首现公务员面试考场
·山东日照公务员考试456人进入面试
·时事评论:应届生真的不适合“考公”吗?
·"聚会之地"堪培拉:年轻的"公务员之城"风
·允许打工﹕来澳留学生签证费涨20澳元
·留学预科择校应三看
 育路社区            进入>>
 
学员报名服务中心: 北京北三环西路32号恒润中心1806(交通位置图
咨询电话:北京- 010-51268840/41 传真:010-51418040 上海-021-64392659、64397431
育路网-中国新锐教育社区: 北京站 | 上海站 | 郑州站| 武汉站
本站法律顾问: 邱清荣律师
北京育路互联科技有限公司版权所有 | 京ICP备05012189号