jwayne
jwayne

Reputation: 756

How does a JVM running multiple threads handle ctrl-c, w/ and w/o shutdown hooks?

Could not find this answer online. When Ctrl+C is hit:

Thanks!

Upvotes: 6

Views: 1835

Answers (2)

devOpsTools
devOpsTools

Reputation: 190

IMO, Daemon threads will continue to run during shutdown process and JVM will kill all running threads later when its time to exit the application. I don't think, running threads will get InterruptedException as JVM doesn't make any extra effort to stop running threads.

http://www.tutorialspoint.com/java/lang/runtime_addshutdownhook.htm

Upvotes: 1

lbalazscs
lbalazscs

Reputation: 17784

The classic book "Java Concurrency in Practice" has a chapter (7.4) on the JVM shutdown, you should read that, but here are some relevant quotes:

If any application threads (daemon or nondaemon) are still running at shutdown time, they continue to run concurrently with the shutdown process.

The JVM makes no attempt to stop or interrupt any application threads that are still running at shutdown time; they are abruptly terminated when the JVM eventually halts.

So the threads are not interrupted, but you can interrupt them explicitly from the shutdown hook, if you wish.

Upvotes: 7

Related Questions