From all the resources I could pull together, I still cannot grasp thread interrupts.. From Oracle's own tutorials (https://docs.oracle.com/javase/tutorial/essential/concurrency/interrupt.html), they don't explain what causes the interrupt exception to be thrown, or how, or what it even is.. they just say it can happen whenever you invoke certain methods like Thread.sleep(). Does it randomly happen when it's called? Is there a length of time that it takes for the exception to be thrown? Is it thrown every time it's called? None of that makes sense because if it's random, it'd be useless to a programmer, and if it happens every time a certain method is called, it'd have no real use.. they explain very little about it, and just move on to other thread concepts.. I haven't had any issues with learning C, Lua, or Python, because the tutorials and documentation provided by them actually explains everything, this is the first time I've ever been completely stumped by a tutorial. I've been searching for about 2 hours for an answer.
Can you include what InterruptedException is exactly, and WHY it's thrown?