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

  • AndroidSale

    AndroidSale

    17 NİSAN 2011
  • Mary Jane Tauyan

    Mary Jane Ta

    20 AĞUSTOS 2009
  • SellerDp

    SellerDp

    27 EKİM 2009