The only way to use atomic compare and set is to pack all your state into a single primitive unit. The largest we have is "long". So we regularly pack what the C folks would call bitfields into longs.
On Sat, Nov 29, 2014 at 8:13 AM, Alex Yursha <alexyur...@gmail.com> wrote: > Hi all, > > According to javadoc current implementation of ThreadPoolExecutor packs two > conceptual fields ‘workerCount’ and ‘runState’ into one actual field ‘ctl’ of > type AtomicInteger. > > Could you please explain are there any performance or other benefits for > this? It seems to complicate the class design and I can’t find the positive > side of this. > > Thanks, > Alex >