以下のコードのようにAtomicBooleanというクラスがありますがこれは「Boolean flg = true;」というものとどう違い、どう使い分けるのでしょうか。

AtomicInteger count = new AtomicInteger();
AtomicBoolean flg =new AtomicBoolean();
flg.set(true);
System.out.println(count.get());
System.out.println(flg.get());