public void run() {
	      while (!isInterrupted()) {    //isInterrupted()̳Thread࣬ж߳Ƿж
	        Runnable task = null;
	        try { 
	          task = getTask();         //õ
	        }catch (InterruptedException ex){}
	        
	        if (task == null) return;   // getTask()nullִ߳getTask()ʱжϣ߳
	        
	        try {                       //񣬲쳣
	          task.run();
	        } catch (Throwable t) {
	          t.printStackTrace();
	        }
	      }
	    }