1. Do you mean 'the only way', except using a lock? 2. I also cant imagine how we can use long primitive type for CAS atomicity without a lock if only its not an AtomicLong. Any hint here, please?
Thanks Sent from my iPhone > On Dec 1, 2014, at 20:27, Martin Buchholz <marti...@google.com> wrote: > > 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 >>