I'm prototyping a concurrent/distributed system in Java. When a process is terminated (e.g. ctrl+c on command line or red button in Eclipse) I would like to broadcast a message to the other processes (one final method) before it goes away. Tried doing it with finalize() but to no avail. Just pure java with threads, sockets, and a main loop. Thanks.
Asked
Active
Viewed 565 times
4 Answers
7
Have you tried using Runtime.addShutdownHook?
Note the part in the documentation indicating that sometimes the JVM may abort without running shutdown hooks - this should be used as part of graceful shutdown, but shouldn't be assumed to always run. (Imagine if your network is suddenly cut off, for example - you can't broadcast a goodbye message in that case.)
Jon Skeet
- 1,335,956
- 823
- 8,931
- 9,049
0
Runtime.addShutdownHook() is what you want. This is only runs if the JVM is shutdowns normally
Bilal Syed Hussain
- 7,724
- 9
- 34
- 43