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

  • bmarian22

    bmarian22

    22 Aralık 2007
  • Gigawipf

    Gigawipf

    18 ŞUBAT 2010
  • TrenchTech Computer Repair Tutorials

    TrenchTech C

    19 EYLÜL 2014