Kapitel 17. Asynchrone Spracheigenschaften
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
C# bietet auf Sprachebene Unterstützung für die Verwendung und Implementierung asynchroner Methoden. Asynchrone APIs sind oft der effizienteste Weg, um bestimmte Dienste zu nutzen. Zum Beispiel werden die meisten Ein- und Ausgaben innerhalb des Betriebssystemkerns asynchron abgewickelt, weil die meisten Peripheriegeräte wie Festplattencontroller oder Netzwerkadapter den Großteil ihrer Arbeit selbstständig erledigen können. Sie brauchen die CPU nur zu Beginn und am Ende jeder Operation.
Obwohl viele der von Betriebssystemen angebotenen Dienste von Natur aus asynchron sind, entscheiden sich Entwickler oft dafür, sie über synchrone APIs zu nutzen (d. h. solche, die erst zurückkehren, wenn die Arbeit abgeschlossen ist). Das ist eine Verschwendung von Ressourcen, weil sie den Thread blockieren, bis die E/A abgeschlossen ist. Threads haben einen Overhead, und um die beste Leistung zu erzielen, ist es normalerweise am besten, eine relativ kleine Anzahl von Betriebssystem-Threads zu haben. Im Idealfall hat deine Anwendung nur so viele OS-Threads, wie du Hardware-Threads hast, aber das ist nur dann optimal, wenn du sicherstellen kannst, dass Threads nur dann blockieren, wenn sie keine Arbeit zu erledigen haben.(In Kapitel 16 wurde der Unterschied zwischen OS-Threads und Hardware-Threads beschrieben.) Je mehr Threads ...
Get C# 8.0 programmieren now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.