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

  • DorkmanScott

    DorkmanScott

    14 NİSAN 2006
  • FrankJavCee

    FrankJavCee

    29 Kasım 2008
  • jeffisthecoolguy

    jeffisthecoo

    17 HAZİRAN 2013