private TaskWrapper getCanExecuteTask() { TaskWrapper TaskWrapper = null; int getNum = 0; while (null != (TaskWrapper = executor.getTask())) { //Have not yet begun to perform the time if (TimeUtil.NOW() < TaskWrapper.StartTime) { if (TaskWrapper.canExecute) { executor.addTask(TaskWrapper); } getNum++; //Task queue on line 1000 / thread, if there is no executable task, stop the search if (getNum >= 1000) { break; } continue; } return(TaskWrapper); } return(null); }