Hi guys:
I read the source code of MINA3.0M2. The style of the code is very
good, the structure is clear, the design is concise and efficient, especially
the use of Selector is unexpected. However, the enqueueWriteRequest method and
the processWrite method in the AbstractNioSession are somewhat flawed.
I see the source code in the enqueueWriteRequest method was originally
"synchronized (writeQueue)", but was commented out, personal speculation may be
the author feel that this treatment will affect performance.
My approach is to use CAS to ensure memory visibility and atomic, see I see the
startSync, finishSync method, feeling that this may be more secure after some
of the performance will not lose too much.
A little personal humble opinion.