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

  • dhcrr's channel

    dhcrr's chan

    2 Ocak 2007
  • Blu animations and other videos

    Blu animatio

    15 HAZİRAN 2007
  • Vintendo Power

    Vintendo Pow

    2 Ocak 2007