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.