Unsafe.putOrderedXXX系列方法详解(数组赋值的第二种方式)
在Netty中,IO线程用于存储任务的容器是MpscUnboundedArrayQueue类. 所有对外的读写操作,都'委托'给IO线程来执行,非IO线程(比如业务线程)若要写数据,必须将写操作封装成一个任务,提交到IO线程的任务队列中.IO线程会择机执行任务队列中的任务,将数据写入到网络(实际只是写到TCP缓冲区). 那么这个任务队列就很重要了,它必须是高性能的. 在Netty以前的版本中,使用JDK的BlockingQueue实现这个任务队列,而Netty是一个追求性能极致的框架(不被规则和常规所束缚),目前选择jctools这个工具包中的MpscUnboundedArrayQueue类实现任务队列. 这个MpscUnboundedArrayQueue队列很特别,它是数组和链表的结合.但是它不是哈希,它的结构类似下面这样 同等大小的数组之间通过链表方式连接. MpscUnboundedArrayQueue<Integer> queue = new MpscUnboundedArrayQueue<>(4); new Thread(() -> { whil...






