@Override
	public void run() {
		while (!mTasks.isEmpty()) {
			T t =  mTasks.remove();
			if (handleTask(t)) {
				workUnitDoneTask(this, t);
			}
		}
		synchronized (this) {
			workerThread = createNewThread();
			//有可能执行完createNewThread就已经有新任务了，这时候需要继续执行
			if (!mTasks.isEmpty()) {
				workerThread.start();
			}
		}
	}