2013-03-25 4 views
0

안녕하세요 나는 구성 가능한 시간 범위 후에 새로 고칠 몇 가지 구성을 가지고 있습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?리프레서 스레드를 쓰는 가장 좋은 방법

@Override 
    public void run() 
    { 
     try 
     { 
      while(true){ 
       if (isRefreshNeeded) { 
        refresh() 
       } 
      } 
     } 
     catch(Exception excep) 
     { 
      // Log and report exception 
     } 
    } 

답변

1

나는 Timer 클래스를 사용하는 것이 좋습니다.

코드를 사용하면 모든 시간을 반복하여 CPU주기를 소비하므로 코드를 사용하는 것은 좋지 않습니다. 다른

0

Timer/TimerTask 또는 현대 ScheduledExecutorService/Runnable 방법을 사용하여 시간 범위 다음에 상쾌한보다, 당신은 아마도 변화 사이의 인과 관계를 설정하고 리스너 (일명, 옵저버) 패턴을 사용하여 갱신해야한다. 게시자가 게시 한 코드가 더 편한 경우 while 루프 끝 부분에서 적어도 Thread.sleep()을 사용해야합니다. 깨끗한 옵션

0

하나는 java.utl.concurrent의 ScheduledExecutorService를 # scheduleAtFixedRate

Here에 존재하는 것은 API 문서

1

에게 인이 사용하는 Timer 클래스 시도해보십시오 사용해보십시오

long initialDelay = 100; // In millis 
    long delay = 1000; // In millis 

    Timer timer = new Timer("Refresher thread"); 
    timer.schedule(new TimerTask() { 

     @Override 
     public void run() { 
      // code to refresh the configurations 

     } 
    }, initialDelay, delay); 
관련 문제