FIFO 调度器中比较器的具体实现

  1. class JobQueueJobInProgressListener extends JobInProgressListener ,其中JobQueueJobInProgressListener有个静态内部类JobSchedulingInfo
  2. int compare(Object o1, Object o2) 返回一个基本类型的整型
    如果要按照升序排序,
    则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)
    如果要按照降序排序
     则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负数)
  3. //按照jobschedulinginfo信息升序排列
  4. static final Comparator<JobSchedulingInfo> FIFO_JOB_QUEUE_COMPARATOR
        = new Comparator<JobSchedulingInfo>() {
        public int compare(JobSchedulingInfo o1, JobSchedulingInfo o2) {
          int res = o1.getPriority().compareTo(o2.getPriority());
          if (res == 0) {
            if (o1.getStartTime() < o2.getStartTime()) {
              res = -1;
            } else {
              res = (o1.getStartTime() == o2.getStartTime() ? 0 : 1);
            }
          }
          if (res == 0) {
            res = o1.getJobID().compareTo(o2.getJobID());
          }
          return res;
        }
      };

posted on 2015-12-08 21:13  哈喽123  阅读(139)  评论(0编辑  收藏  举报

导航