Essentially all AtomicBoolean is a volatile boolean in an object.
There will be a small overhead per object. Probably insignificant, but possibly more memory to get into cache.
If you need to use AtomicBooleanFieldUpdater then there is quite a lot of performance overhead.It can be okay if you aren't going to do it often (as attach in NIO).