Koroutinen: Weniger warten, asynchron arbeiten

Seite 4: Fazit

Inhaltsverzeichnis

Koroutinen bieten die Möglichkeit, nebenläufige Programme modular, wartbar und skalierbar zu implementieren. Da sie das Verhältnis W/C reduzieren, lassen sich deutlich mehr Requests pro Sekunde bearbeiten. Darüber hinaus zeigen Programme mit Koroutinen häufig eine bessere Auslastung der CPU.

Koroutinen kommen in den letzten Jahren immer öfter zum Einsatz. Zuerst unter den Go-Entwicklern, dank Kotlin nun aber auch in der JVM-Welt und auf Android-Geräten. Im Zuge der offiziellen Aufnahme in den C++20-Standard stünde Koroutinen schließlich das Gros der Plattformen offen.

Koroutinen sind jedoch keine "niedrig hängenden Früchte", da sich ihre Funktionsweise grundlegend von Threads unterscheidet und es an Best Practises mangelt. Softwareentwickler benötigen Einarbeitungszeit, um optimalen Nutzen aus ihnen ziehen zu können. Insbesondere im Hinblick auf die Performance-Optimierung sind detaillierte Kenntnisse des Koroutinen-Schedulers unabdingbar.

Jörn Dinkla
ist Software-Entwickler und Berater bei ThoughtWorks Deutschland.

  1. Brian Goetz et al.; Java Concurrency in Practice; Addison-Wesley, 2006
  2. Butcher, Paul; Seven Concurrency Models in Seven Weeks; Pragmatic Programmers, 2014

(map)