It depends on what you intend to happen when it run()finishes work. If your function run()is your main thread loop, so you want this thread to exit immediately after completion run(), then swallowing the interrupt flag with Thread#interrupted()is ok.
, , . run(), , . Thread#isInterrupted().
, stop(), InterruptedException,
Thread.currentThread().interrupt();
, stop() , , , , stop() Thread#join(). InterruptedException stop() , . , ; , .
, simulationThread ?