Heim  >  Artikel  >  Java  >  Der Unterschied zwischen Java Nio und Io

Der Unterschied zwischen Java Nio und Io

王林
王林Original
2019-11-09 16:57:592449Durchsuche

Der Unterschied zwischen Java Nio und Io

Die Hauptunterschiede zwischen IO und NIO in Java, wie in der Abbildung gezeigt:

Der Unterschied zwischen Java Nio und Io

1. orientiert und pufferorientiert

IO ist streamorientiert und NIO ist pufferorientiert.

Java IO ist Stream-orientiert, was bedeutet, dass ein oder mehrere Bytes gleichzeitig aus dem Stream gelesen werden und bis alle Bytes gelesen wurden, werden sie nirgendwo zwischengespeichert.

Der pufferorientierte Ansatz von Java NIO ist etwas anders. Die Daten werden in einen Puffer eingelesen, den sie später verarbeiten und bei Bedarf im Puffer hin und her bewegen.

2. Blockierende und nicht blockierende IO

Die verschiedenen Streams von Java IO sind blockierend. Wenn ein Thread read() oder write() aufruft, wird der Thread blockiert, bis einige Daten gelesen oder die Daten vollständig geschrieben wurden.

Der nicht blockierende Modus von Java NIO ermöglicht es einem Thread, eine Anfrage zum Lesen von Daten von einem bestimmten Kanal zu senden, kann jedoch nur die aktuell verfügbaren Daten abrufen. Wenn derzeit keine Daten verfügbar sind, werden keine Daten abgerufen Anstatt den Thread blockiert zu halten, kann der Thread weiterhin andere Dinge tun, bis die Daten lesbar werden.

3. Selektor

Der Selektor von Java NIO ermöglicht die Überwachung mehrerer Eingangskanäle. Sie können mehrere Kanäle mit einem Selektor registrieren. Dazu wird dann ein separater Thread verwendet „Wählen“ Sie Kanäle aus, die bereits Eingaben haben, die verarbeitet werden können, oder wählen Sie Kanäle aus, die zum Schreiben bereit sind. Dieser Auswahlmechanismus erleichtert einem einzelnen Thread die Verwaltung mehrerer Kanäle.

Empfohlenes Tutorial: Java-Tutorial

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Java Nio und Io. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn