2017-10-28 3 views
0

Ist mein Verständnis korrekt, dass Netty nicht-blockierende io (NIO) nur für das Netzwerk bietet? Und wenn Sie eine Blockierung io (d. H. Datenbankabfrage) machen wollen, müssen Sie executer von ChannelHandlerContext verwenden, um EventLoop nicht zu blockieren?Stimmt es, dass Netty nicht blockierende IO nur für das Netzwerk bereitstellt?

+0

Das Problem hat nicht mit dem Netzwerk zu tun; Es ist die blockierende Natur von JDBC-Treibern. Es gibt Bemühungen, einen nicht blockierenden JDBC-Treiber für JDK 9 zu schreiben, aber es ist noch nicht da. – duffymo

Antwort

1

Ist mein Verständnis korrekt, dass Netty nicht-blockierende io (NIO) nur für das Netzwerk bietet?

Es wäre genauer zu sagen, dass Java nur bietet nicht blockierende E/A für Netzwerkkanäle. Siehe die Liste der Klassen, die sich erweitern SelectableChannel.

Und wenn Sie eine Blockierung io (das heißt Datenbankabfrage) machen wollen, müssen Sie executer von ChannelHandlerContext zu blockieren, um Ereignisschleife nicht verwenden?

Ja.

Verwandte Themen