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

📄 worker.java

📁 用java写一个线程池的例子,值得一看.
💻 JAVA
字号:


import java.util.Vector;

/**
 * Created by IntelliJ IDEA.
 * User: Administrator
 * Date: 2007-9-25
 * Time: 9:29:17
 * To change this template use Options | File Templates.
 */
 public   abstract   class   Worker  extends Thread    {
    private   Manager   mManager   =   null;
    // disnable by james
    //private   Thread   mThread   =   null;
    private   boolean isRunning = false ;
    private   String threadName = null ;
      /*
             public abstract   void   init();
             public abstract void setQueryType(int values);
             public abstract int getQueryType();
             public abstract void setExpresslst(Vector lsExpresslst);
             public abstract Vector getExpresslst();
             public abstract void setOraExpresslst(Vector OraExpresslst);
             public abstract Vector getOraExpresslst();
             public abstract void setEnableEntryIDLst(Vector EnableEntryIDlst);
             public abstract Vector getEnableEntryIDLst();
             public abstract void setCMDLst(Vector cmdlst);
             public abstract Vector getCMDLst();
       */
    public   abstract   void   process() throws Exception;
    public   Worker()   {
    }
    public   Worker(String   threadNames,   Manager   manager )   {
       mManager   =   manager;
       threadName =  threadNames ;
       //disnable by james
       // mThread   =   new   Thread(this,   threadName);
       //init();
       //disnable by james
       // mThread.start();
    }

    public String getThreadName(){
       return threadName ;
    }

    public   void   run(){
       while   (true)   {
          waitForStart();
          //Worker   worker   =   mManager.getIdleWorker();
          try{
            // if (isRunning)
             {
                process();
             }
          }
          catch(Exception e){
             isRunning = false ;
             System.out.println("work线程执行出错,错误信息为:"+e.getMessage()+",所在线程池为"+mManager.getManagerName());
          }
          isRunning   =   false;

      }
    }

    public boolean IsRunning(){
       return isRunning ;
    }

    public void setRuning(boolean running){
       isRunning = running ;
    }
       /*
             public   void   start()   {
                     isRunning   =   true;
                     mManager.getIdleWorker();
                     notifyToStart();
             }
       */
    public   synchronized   void   waitForStart()   {
       try{
          wait();
       }catch(InterruptedException   ex){
          System.out.println(ex.getMessage());
       }
    }
    public   synchronized   void   notifyToStart(){
       this.setRuning(true);
       try{
       	// Thread.sleep(3);
       }catch(Exception   ex){
         System.out.println(ex.getMessage());
       } ;
       this.notifyAll();
    }
}

⌨️ 快捷键说明

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