Module 7: Asynchronous Programming and Performance (Java)
This module focuses on concurrency, asynchronous programming, and backend performance optimization in Java.
7.1 Learning Objectives
- Understand Java’s concurrency model and thread management.
- Use asynchronous operations with CompletableFuture.
- Optimize backend performance using caching and load balancing.
7.2 CompletableFuture Example
import java.util.concurrent.*;
public class AsyncExample {
public static void main(String[] args) {
CompletableFuture.supplyAsync(() -> {
return "Running async task...";
}).thenAccept(System.out::println);
}
}
7.3 Caching with Redis
@Service
public class DataService {
@Cacheable("items")
public String getData() {
simulateDelay();
return "Data retrieved";
}
private void simulateDelay() {
try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); }
}
}
7.4 Exercise
- Implement asynchronous calls in a service layer.
- Enable caching for database queries using Spring Cache and Redis.