Init类是ET框架接触的第二个脚本。该类开始就设置了一个SynchronizationContext对象。
SynchronizationContext类是用于多线程之间通信的一个类,其在通讯中充当了个传输者的角色(详情可以参看这篇文章)。OneThreadSynchronizationContext类继承自SynchronizationContext。内部维护了一个ConcurrentQueue<Action> queue对象。当中有一个Updata()方法,不断的执行队列内部的委托方法。同时重写了Post()方法,在线程通信的时候,可以向队列中添加元素。
ConcurrentQueue是线程安全的队列。详情可以参见这篇文章(点击此处)。该队列使用了分段存储的概念。ConcurrentQueue分配内存时以段(Segment)为单位,一个段内部含有一个默认长度为32的数组和执行下一个段的指针,有个和Head和Tail指针分别指向了起始段和结束段(这种结构有点像操作系统的段式内存管理和页式内存管理策略)。这种分配内存的实现方式不但减轻的GC的压力而且调用者也不用显示的调用TrimToSize()方法回收内存(在某段内存为空时,会由GC来回收该段内存)。
&nbs