SORU
22 Temmuz 2009, ÇARŞAMBA


Java nasıl bir zaman aşımı ile bazı engelleme yöntemi arayayım mı?

Standart güzel bir şekilde Java bir zaman aşımı ile engelleme yöntemi var mı? Bunu yapmak mümkün olmak istiyorum

// call something.blockingMethod();
// if it hasn't come back within 2 seconds, forget it

mantıklı olursa.

Teşekkürler.

CEVAP
22 Temmuz 2009, ÇARŞAMBA


Bir Vasi kullanabilirsiniz:

ExecutorService executor = Executors.newCachedThreadPool();
Callable<Object> task = new Callable<Object>() {
   public Object call() {
      return something.blockingMethod();
   }
};
Future<Object> future = executor.submit(task);
try {
   Object result = future.get(5, TimeUnit.SECONDS); 
} catch (TimeoutException ex) {
   // handle the timeout
} catch (InterruptedException e) {
   // handle the interrupts
} catch (ExecutionException e) {
   // handle other exceptions
} finally {
   future.cancel(); // may or may not desire this
}

Geleceği varsa.5 saniye içinde geri dönüş yok, bir özel durum atar. Daha fazla ayrıntı için javadoc bakın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autodesk 3ds Max Learning Channel

    Autodesk 3ds

    23 HAZİRAN 2010
  • DroidModderX ROOT Master

    DroidModderX

    14 ŞUBAT 2011
  • hydejiaqi

    hydejiaqi

    12 Mart 2008