Rumah  >  Artikel  >  Java  >  Apakah perbezaan antara kaedah orTimeout() dan kaedah completeOnTimeOut() dalam Java 9?

Apakah perbezaan antara kaedah orTimeout() dan kaedah completeOnTimeOut() dalam Java 9?

WBOY
WBOYke hadapan
2023-08-27 22:53:041074semak imbas

Java 9中orTimeout()方法和completeOnTimeOut()方法之间的区别是什么?

orTimeout() dan completeOnTimeOut()#🎜🎜 kedua-duanya dalam kaedah #🎜🎜 # Ditakrifkan dalam kelas CompletableFuture , kedua-dua kaedah ini diperkenalkan dalam Java 9. Kaedah orTimeout() boleh digunakan untuk menentukan bahawa jika tugasan yang diberikan tidak disiapkan dalam masa tertentu, program menghentikan pelaksanaan dan membuang TimeoutException strong>sementara # 🎜🎜#completeOnTimeOut Kaedah () melengkapkan CompletableFuture menggunakan nilai yang disediakan. Jika tidak, ia akan selesai sebelum tamat masa yang diberikan. Sintaks orTimeout()

<strong>public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)</strong>

Contoh

terjemahan bahasa Cina ialah:

Contoh

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);
   }
}

completeOnTimeOut() Sintaks
<strong>25</strong>

Contoh# ##Terjemahan Bahasa Cina🎜🎜 ialah: rrreee

output

rrreee

Atas ialah kandungan terperinci Apakah perbezaan antara kaedah orTimeout() dan kaedah completeOnTimeOut() dalam Java 9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam