Maison >Java >javaDidacticiel >Quelle est la différence entre la méthode orTimeout() et la méthode completeOnTimeOut() dans Java 9 ?
Les méthodes
orTimeout() et completeOnTimeOut() sont toutes deux définies dans la classe CompletableFuture . Ces deux méthodes ont été introduites dans Java 9. La méthode orTimeout() peut être utilisée pour spécifier que si une tâche donnée n'est pas terminée dans un délai précis, le programme arrête l'exécution et renvoie une TimeoutException strong> tandis que la méthode completeOnTimeOut() est terminée à l'aide de la méthode fournie. valeur CompletableFuture. Sinon, l'exécution se terminera avant le délai imparti. La traduction chinoise de la syntaxe
<strong>public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)</strong>
import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; public class OrTimeoutMethodTest { public static void main(String args[]) throws InterruptedException { int a = 10; int b = 15; <strong>CompletableFuture</strong>.supplyAsync(() -> { try { TimeUnit.SECONDS.sleep(5); } catch(InterruptedException e) { e.printStackTrace(); } return a + b; }) .<strong>orTimeout</strong>(4, TimeUnit.SECONDS) .<strong>whenComplete</strong>((result, exception) -> { System.out.println(result); if(exception != null) exception.printStackTrace(); }); TimeUnit.SECONDS.sleep(10); } }
<strong>25 </strong>
<strong>public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)</strong>
import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; public class CompleteOnTimeOutMethodTest { public static void main(String args[]) throws InterruptedException { int a = 10; int b = 15; <strong>CompletableFuture</strong>.supplyAsync(() -> { try { TimeUnit.SECONDS.sleep(5); } catch(InterruptedException e) { e.printStackTrace(); } return a + b; }) .<strong>completeOnTimeout</strong>(0, 4, TimeUnit.SECONDS) .<strong>thenAccept</strong>(result -> System.out.println(result)); TimeUnit.SECONDS.sleep(10); } }
<strong>25</strong>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!