간단한 정시 작업의 시작과 취소

2465 단어

쓸데없는 말 작작 하고 바로 코드에 올리시오
 
  public static void main(String[] arg0) throws Exception {
        final Map futures = new HashMap<>();
        final String jobID = "startJob";
        final CountDownLatch countDownLatch = new CountDownLatch(1);
        ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
        Future future = service.scheduleAtFixedRate(new Runnable(){
            private int count;
            @Override
            public void run() {
                count++;
                System.out.println(" "+count+"       ");
                if (count == 2){  //    
                    Future future = futures.get(jobID);
                    if (future != null){
                        future.cancel(true);
                    }
                    countDownLatch.countDown();
                    System.out.println("    ");
                }
            }
        },3000,1000, TimeUnit.MILLISECONDS);
        futures.put(jobID, future);
        countDownLatch.await();
        service.shutdown();
}

 
전재 대상:https://www.cnblogs.com/hwj3918/p/9481714.html

좋은 웹페이지 즐겨찾기