tgoop.com/javapro_ir/4491
Create:
Last Update:
Last Update:
⚡️ CompletableFuture در جاوا — Async Programming
برنامهنویسی همزمان (Asynchronous Programming) یعنی بتونیم چند کار رو به صورت موازی اجرا کنیم، بدون اینکه اجرای برنامه متوقف بشه.
در جاوا برای این کار کلاس `CompletableFuture` معرفی شده که توی java.util.concurrent
هست و امکانات خیلی قوی برای اجرای Async به ما میده.
✅ مثال ساده – اجرای Async
import java.util.concurrent.CompletableFuture;
public class AsyncExample {
public static void main(String[] args) {
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
// یه تسک ساده
System.out.println("در حال اجرا در یک Thread جداگانه: " + Thread.currentThread().getName());
});
// منتظر میمونیم تا کار تموم بشه
future.join();
System.out.println("کار اصلی تمام شد!");
}
}
🔎 توضیح:
* به وسیله
runAsync
یک تسک رو در Thread جداگانه اجرا میکنیم.*به وسیله
join()
منتظر میمونه تا کار تموم بشه.* به این ترتیب، برنامه متوقف نمیشه و بقیه کارها همزمان جلو میرن.
✅ برگرداندن نتیجه با supplyAsync
import java.util.concurrent.CompletableFuture;
public class SupplyExample {
public static void main(String[] args) {
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
return "Hello from Async Task!";
});
// گرفتن نتیجه
String result = future.join();
System.out.println("نتیجه: " + result);
}
}
📌 و
supplyAsync
مثل runAsync
هست با این تفاوت که یه مقدار برمیگردونه.✅ ترکیب چند Future
import java.util.concurrent.CompletableFuture;
public class CombineExample {
public static void main(String[] args) {
CompletableFuture<String> future1 = CompletableFuture.supplyAsync(() -> "Java");
CompletableFuture<String> future2 = CompletableFuture.supplyAsync(() -> "Async");
CompletableFuture<String> combined = future1.thenCombine(future2, (f1, f2) -> f1 + " " + f2);
System.out.println(combined.join()); // خروجی: Java Async
}
}
📌 اینجا
thenCombine
دو Future رو با هم ترکیب کرده و نتیجه جدید ساخته.🎯 جمعبندی:
* ابزار
CompletableFuture
برای برنامهنویسی Async در جاوا خیلی قدرتمنده.* متدهای اصلی:
*
runAsync
→ اجرای تسک بدون خروجی.
*
supplyAsync
→ اجرای تسک با خروجی.
*
thenApply
, thenAccept
, thenCombine
→کار روی نتیجه و ترکیب Futureها.
* باهاش میشه برنامههای سریعتر و بدون بلاک شدن نوشت.
#کاربرـحرفهـای
🆔 @javapro_ir
🆔 @group_javapro
BY برنامه نویسی جاوا | Java
Share with your friend now:
tgoop.com/javapro_ir/4491