Create a simple, thread-safe BankAccount class that uses an AtomicLong to represent the account balance. Implement methods for depositing, withdrawing, and checking the balance, ensuring that these operations are atomic and safe from race conditions when accessed by multiple threads. The withdrawal method must subtract the given amount if there is a sufficient amount on the balance and return true, otherwise return false and leave the balance unchanged.
In the output, we check the balance after each action described in the input.