⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 workerthread.java

📁 介绍线程的使用方法
💻 JAVA
字号:
package thread.workqueue;

import java.util.List;

/**
 * <p>
 * Title:工作队列内部处理处理线程类。
 * </p>
 * 
 * <p>
 * Description:
 * </p>
 * 
 * <p>
 * Copyright: Copyright (c) 2004
 * </p>
 * 
 * <p>
 * Company: netsky
 * </p>
 * 
 * @author wdz123@hotmail.com
 * @version 1.0
 * @see thread.workqueue.WorkQueue
 * @see Java 理论与实践:线程池与工作队列 线程池有助于实现最佳资源利用率
 *      {@link  http://www-900.ibm.com/developerWorks/cn/java/j-jtp0730/index.shtml}
 */
 class WorkerThread
    extends Thread {
  private List q;
  private boolean stopWork = false;
  public WorkerThread(List queue) {
    q = queue;
  }

  public void run() {
    Runnable r = null;
    while (true) {
      synchronized (q) {
        if (stopWork){
            return;
        }
        while (q.isEmpty()) {
          try {
            q.wait();
          }
          catch (InterruptedException ignored) {
          }
        }
        r = (Runnable) q.remove(0);
      }
      //可以增加工作任务开始处理前的回调接口
      //当然这个工作任务的类型的修改一下,提供相应的方法才可以
      //e.g.  returncall.beginProcess();


      //开始处理任务
      try {
        r.run();
      }
      catch (Exception ex) {

      }

      //可以增加工作任务处理结束的回调接口
      //当然这个工作任务的类型的修改一下,提供相应的方法才可以
      //e.g.  returncall.endProcess();
    }
  }

/**
   * 停止处理新的任务
   * **/
 public  void stopProcess(){
   synchronized (q) {
    stopWork = true;
  }
 }
  public static void main(String[] args) {
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -