If you synchronize run(), no other thread would ever be able to get into start() or stop(). You would rather synchronize the stop flag before accessing it. But I’d say, stick to your volatile boolean.
I thought so. That cleared up a lot of confusion for me
Thank you.