Zum Hauptinhalt springen
Echtzeit-Radar & Feeds
Alle RSS Feeds ➔
👥 Community & Social
Windows Tipps & SecurityGrafikkarte vor Überhitzung schützen: So geht’s(25.09.2026 um 08:00 Uhr)
••••••••••
Windows Tipps & SecurityGrafikkarte vor Überhitzung schützen: So geht’s(25.09.2026 um 08:00 Uhr)
••••••••••
Intelligence View
⚡ tsecurity.de Intelligence

This Week I Learnt: CompletableFuture – Java's Approach to Asynchronous Programming

This week, I'm diving into Java's CompletableFuture. As a full-stack developer with a frontend background, dealing with asynchronous tasks is an inevitable part of my role – network requests, background computations, and the like. In J…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

This week, I'm diving into Java's CompletableFuture.



As a full-stack developer with a frontend background, dealing with asynchronous tasks is an inevitable part of my role – network requests, background computations, and the like. In Java, CompletableFuture is a powerful tool for handling these tasks while keeping the main thread responsive.




Completable futures are to Java what Promises are to JavaScript.




If you're familiar with JavaScript, it might help to grasp these concepts by making parallels between both languages. I like to think of CompletableFuture as Java's version of a Promise. It is a class that represents the eventual result of an asynchronous operation, whether that result is a success or failure. Introduced in Java 8 as part of the java.util.concurrent package, it's a powerful way of writing non-blocking code, with methods for chaining operations, and handling errors, similarly to Promises.



Here's a quick comparison of the two:




// JavaScript Promise
fetchFromServer()
.then(data => processData(data))
.then(result => updateUI(result))
.catch(error => handleError(error));









// Java CompletableFuture
CompletableFuture.supplyAsync(() -> fetchDataFromServer())
.thenApply(data -> processData(data))
.thenAccept(result -> updateUI(result))
.exceptionally(error -> handleError(error));






As illustrated above, CompletableFuture provides a similar, chainable syntax that allows for clean and readable asynchronous code.



Consider a scenario where you need to fetch a user's profile data and order history from two separate endpoints. You would want to avoid freezing the UI while waiting for these requests to complete. Here's how you would implement this using CompletableFuture:




CompletableFuture<User> profileFuture = CompletableFuture.supplyAsync(() -> {
// Fetch user profile from a service
});

CompletableFuture<List<Order>> ordersFuture = CompletableFuture.supplyAsync(() -> {
// Fetch user orders from another service
});

CompletableFuture<Void> combinedFuture = CompletableFuture.allOf(profileFuture, ordersFuture);

combinedFuture.thenRun(() -> {
User user = userFuture.join();
List<Order> orders = ordersFuture.join();
displayUserData(user, orders);
});






In this example, we trigger two asynchronous requests simultaneously and use allOf to wait for both to finish. Once they complete, we retrieve the results and update the UI accordingly, all without blocking the main thread.









Chaining & CompletionStage



CompletableFuture implements the CompletionStage interface, which provides the foundation for chaining operations. Each thenApply, thenAccept, and similar method returns another CompletionStage, allowing you to create complex asynchronous pipelines.



Similar to how we can chain promises in JavaScript when we have a sequence of asynchronous tasks to be performed one after another, we can chain tasks within a Completable Future in order to create a sequence of dependent asynchronous operations without falling into callback hell. Here's how we would do that:




CompletableFuture.supplyAsync(() -> "Hello")
.thenApply(result -> result + ", CompletableFuture")
.thenApply(result -> result + " in Java")
.thenAccept(System.out::println);









Handling exceptions



Where we have .catch() on a Promise object, we have .exceptionally() on a Completable Future. This method handles exceptions that may occur during asynchronous processing:




CompletableFuture.supplyAsync(() -> {
if (true) {
throw new RuntimeException("Exception in CompletableFuture!");
}
return "No exception";
}).exceptionally(ex -> {
System.out.println("Handled exception: " + ex);
return "Recovered value";
}).thenAccept(System.out::println);









I hope this article gives you a good starting point to explore the CompletableFuture class further.



Helpful Links:



1. Sofort-Triage & Abwehrmaßnahmen

SOC Incident Playbook: Vulnerability Remediation & Verification
1 Warnungen
title: Detect Exploitation - This Week I Learnt: CompletableFuture – Java's Approach to Asynchronous Programming
id: d83af8f8-ecb2-4062-8b74-f49b22a47f5d
status: experimental
description: Automatisch generierte SIEM-Erkennungsregel basierend auf CTI Intelligence
references:
  - https://tsecurity.de/
author: iShareStuff CTI Automated Detection Engine
date: 2026-09-25
logsource:
  category: network_connection
  product: any
detection:
  selection:
      CommandLine|contains:
        - 'exploit'
  condition: selection
falsepositives:
  - Legitime administrative Zugriffe oder Penetrationstests
level: high
tags:
  - attack.initial_access
Syntax validiert (0 Fehler)
rule CTI_Threat_Indicator {
    meta:
        author = "iShareStuff CTI Automated Detection Engine"
        date = "2026-09-25"
        description = "YARA Signature for "
    strings:
        $str = "This Week I Learnt: Completabl" ascii wide
    condition:
        any of them
}
Syntax validiert (0 Fehler)
index=security sourcetype IN ("cisco:asa", "pan:traffic", "zeek_conn", "suricata", "WinEventLog:Security")
("This Week I Learnt CompletableFuture  Ja")
| stats count earliest(_time) as first_seen latest(_time) as last_seen by src_ip, dest_ip, dest_host, signature
| eval first_seen=strftime(first_seen, "%Y-%m-%d %H:%M:%S"), last_seen=strftime(last_seen, "%Y-%m-%d %H:%M:%S")
| sort - count
Syntax validiert (0 Fehler)
message: "*This Week I Learnt CompletableFuture  Ja*"
Syntax validiert (0 Fehler)
CommonSecurityLog
| where Message has "This Week I Learnt CompletableFuture  Ja"
| summarize EventCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated) by SourceIP, DestinationIP, DestinationPort, Activity
| extend DetectionRule = "iShareStuff-CTI-Compiled"
| sort by EventCount desc

2. Cyber Threat Intelligence & Forensik

🎯
MITRE ATT&CK Matrix Navigator 14 Taktiken
Reconnaissance
-
Resource Development
-
Initial Access
Execution
Persistence
-
Privilege Escalation
Defense Evasion
Credential Access
-
Discovery
-
Lateral Movement
-
Collection
-
Command and Control
Exfiltration
-
Impact
tsecurity.de Cognitive Threat RAG
Fokus-Vektor:

Kognitive Analyse für identifizierte Bedrohung: Erhöhte Bedrohungslage im Bereich This Week I Learnt: CompletableFuture – .... Basierend auf 368k Vektor-Korrelationen werden sofortige Isolationsmaßnahmen für betroffene Endpunkte empfohlen.

🛡️ Angriffsfläche & Exposure

Netzwerk/Remote-Zugriff ohne Vorauthentifizierung möglich.

⚡ Empfohlene Sofortmaßnahmen
  • 1. Perimeter-Inspektion: Relevante Portfreigaben und exponierte Endpunkte unverzüglich scannen.
  • 2. Patch-Applikation: Hersteller-Hotfix einspielen oder betroffene Daemons in isolierte DMZ-Segmente überführen.
  • 3. Telemetrie & EDR-Alerts: Prozessaufrufe und Child-Processes auf anomale Shell-Spawns überwachen.
🔗 Semantisch verwandte Zero-Days MariaDB 11.7 VEC
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten This Week I Learnt: CompletableFuture – Java's Approach to Asynchronous Programming

Thematisch verwandte Begriffe: This, Week, Learnt, CompletableFuture · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-97818 | phpIPAM through 1.8.3 has incorrect authorization for id=="admins" and i…
Advisory →
tsecurity.de Icon
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag