JAVAPRO_IR Telegram 4491
⚡️ 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
👍3



tgoop.com/javapro_ir/4491
Create:
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

View MORE
Open in Telegram


Telegram News

Date: |

Select “New Channel” The court said the defendant had also incited people to commit public nuisance, with messages calling on them to take part in rallies and demonstrations including at Hong Kong International Airport, to block roads and to paralyse the public transportation system. Various forms of protest promoted on the messaging platform included general strikes, lunchtime protests and silent sit-ins. Just as the Bitcoin turmoil continues, crypto traders have taken to Telegram to voice their feelings. Crypto investors can reduce their anxiety about losses by joining the “Bear Market Screaming Therapy Group” on Telegram. Telegram offers a powerful toolset that allows businesses to create and manage channels, groups, and bots to broadcast messages, engage in conversations, and offer reliable customer support via bots. Administrators
from us


Telegram برنامه نویسی جاوا | Java
FROM American