Is lesson me hum seekhenge:
- Future kya hota hai
- Executor ka result kaise return hota hai
- Callable vs Runnable
- Future methods
- Practical examples
Runnable me:
return value nahi hoti ❌
Example:
Runnable task = () -> {
System.out.println("Task done");
};👉 result return nahi hota
Callable use karte hain:
jab result return karna ho ✔
Callable<Integer> task = () -> {
return 10 + 20;
};✔ return value hoti hai
✔ exception throw kar sakta hai
Future ek object hai jo:
future result ko represent karta hai
👉 matlab:
result baad me milega
import java.util.concurrent.*;
class Test {
public static void main(String[] args) throws Exception {
ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<Integer> task = () -> {
Thread.sleep(1000);
return 50;
};
Future<Integer> future = executor.submit(task);
System.out.println("Task submitted...");
int result = future.get(); // wait karega
System.out.println("Result: " + result);
executor.shutdown();
}
}submit() → Future milega
Future → get() → result milega
| Method | Use |
|---|---|
| get() | result lena |
| isDone() | check complete |
| cancel() | task cancel |
| isCancelled() | cancel check |
while(!future.isDone()){
System.out.println("Waiting...");
}
System.out.println(future.get());ExecutorService executor = Executors.newFixedThreadPool(2);
Callable<Integer> task1 = () -> 10;
Callable<Integer> task2 = () -> 20;
Future<Integer> f1 = executor.submit(task1);
Future<Integer> f2 = executor.submit(task2);
System.out.println(f1.get() + f2.get());
executor.shutdown();| Feature | Runnable | Callable |
|---|---|---|
| Return | ❌ No | ✔ Yes |
| Exception | ❌ No | ✔ Yes |
| Use | execute() | submit() |
future.get();✔ wait karta hai jab tak result ready na ho
Food order:
order diya → Future
food ready → get()
✔ Callable result return karta hai
✔ Future async result handle karta hai
✔ get() blocking hota hai
✔ always executor shutdown karo
- Future kya hota hai?
- Runnable vs Callable difference?
- future.get() blocking kyun hota hai?
- Future cancel kaise karte hain?
Is lesson me humne seekha:
✔ Future concept
✔ Callable usage
✔ Executor + Future flow
✔ Async result handling
Executor + Future Java me asynchronous programming ka powerful combination hai.