SystemTimer.timeout_after (30.seconds)
bunu öldürerek ardından iplik bölmek ve bunu başarmak edebilecek bir şey ucunu yapacağız Bir süre sonra, ama daha basit bir yolu var mı?
SystemTimer.timeout_after (30.seconds)
bunu öldürerek ardından iplik bölmek ve bunu başarmak edebilecek bir şey ucunu yapacağız Bir süre sonra, ama daha basit bir yolu var mı?
Parçacığı onu çalıştırmak veya böyle bir şey Ya: Gördüğünüz gibi, bu yöntemlerin her türlü çalışmıyor
void method() {
long endTimeMillis = System.currentTimeMillis() + 10000;
while (true) {
// method logic
if (System.currentTimeMillis() > endTimeMillis) {
// do some clean-up
return;
}
}
}
.
Java Timer mu kullanıyorsunuz?
Bir arka plan iş parçacığında gelecekte yürütme için görevler zamanlamak için bir tesis. Görevler bir kerelik bir uygulama için veya düzenli aralıklarla tekrarlı yürütme için planlanabilir.
Bir parametre olarak bir zaman aşımı recievs bir invokeAll yöntemi olan ThreadPoolExecutor oluşturabilir. Oluşturduğum
public static <V> Optional<V> of(PrivilegedAction<V> action, Duration duration) {
final CompletableFuture<V> handler = CompletableFuture.supplyAsync(() -> action.run());
V retval = null;
try {
retval = handler.get(duration.toMillis(), TimeUnit.MILLISECONDS);
} catch (TimeoutException te) {
} catch (Exception e) {
try {
handler.cancel(true);
} catch (CancellationException ce) {
}
}
return Optional.ofNullable(retval);
}
bir util sınıfı: (Alman yorumlarınızı
Ne arıyorsun CompletableFuture<T>
Kullanımı şuna benzer olabilir Java 8. den (Bağlantı resmi JavaDoc'u yol açar) 'dir) DTimeout (View at pastebin)
'u okuduğunuzdan emin olun. Harici kaynaklara bağlantılar teşvik edilir, ancak lütfen ekleyin bağlantı etrafında bağlam yani y Diğer kullanıcılarımız ne olduğu ve neden orada olduğu hakkında biraz fikir sahibi olacaklar. Hedef siteye ulaşılamaması veya sürekli olarak çevrimdışı olması durumunda, her zaman önemli bir bağlantının en alakalı bölümünü belirtin. – pableiros
http://java.sun.com/j2se/1.4.2/docs/guide/misc/threadPrimitiveDeprecation.html –