2014-06-24 4 views
0

Executors.newFixedThreadPool을 사용하여 2 분마다 스레드를 시작하고 스레드가 서버로 데이터를 보냅니다.Executors.newFixedThreadPool에서 얻은 종료 스레드 풀

때때로 언젠가 전송할 데이터가 없습니다. 이 경우 어떻게 풀을 종료해야합니까? 나는

코드는 ThreadPool이를 통해 실행되는 동일한 스레드에서 풀의 종료를 시작할 수 있습니다

scheduledThreadPool = Executors.newScheduledThreadPool (5);

 Runnable runnable = new Runnable() { 
      @SuppressLint("ShowToast") 

      public void run() { 

       Log.e("Thread Pool -1 is running", "ThreadPool-1"); 
       sendDataToServer(); 


      } 

     }; 

     scheduledThreadPool.scheduleWithFixedDelay(runnable, INITIAL_DELAY, 
       DELAY, TimeUnit.SECONDS); 

     } 
+0

풀에 동적으로 추가 된 스레드를 게시 할 수 있습니까? –

+0

코드 – Bads123

+0

에 올 풀에 풀을 추가 하시겠습니까? –

답변

0

나중에 참조 할 수 있도록 예약하십시오.

scheduledFuture.cancel(true); 

당신이 풀에서 만들 것입니다 모든 선물을 유지해야합니다 나중에 취소 할 수 있도록 :

final ScheduledFuture<?> scheduledFuture = scheduledThreadPool.scheduleWithFixedDelay(runnable, INITIAL_DELAY, 
      DELAY, TimeUnit.SECONDS); 

취소하려면, 당신의 미래에 (Boolean) 메서드를 취소 호출합니다.