![](/img/trans.png)
[英]In Netty 4.0.15, java.nio.channels.IllegalSelectorException exception
[英]Are netty (or java NIO) channels FIFO?
網絡通道(通常是Java NIO通道)是否是FIFO? 還是我需要使用序列號自己實現FIFO?
謝謝
NIO在內部維護讀寫鎖定; 但是,它們是使用NIO中的synchronized
塊實現的。
沒有保證線程B將線程A后獲得鎖當使用synchronized
。 線程C很有可能在線程B之前獲得寫鎖定。
請參閱以下有關鎖定釋放的信息: 同步釋放順序
如果需要跨多個線程保證FIFO,則需要創建一個帶有fair=true
的ReentrantLock
,並要求所有線程首先獲得該鎖。
維護順序不是傳輸層的責任。因此,您通過同一通道(同一套接字)發送消息A和消息B,在服務器端,消息到達順序是不確定的。
滿足以下條件的消息到達順序為發送順序:
如果您需要訂購,則您的應用程序應該執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.