Explanation of the Thread-Local Handshakes Explanation of the Thread-Local Handshakes multithreading multithreading

Explanation of the Thread-Local Handshakes


After researching JEP: 312 Thread-Local-Handshakes and reading the excellent comments to this question, here is a quick summary.

  • It is a performance enhancement which cannot be used directly by developers:

    A handshake mechanism is proposed as an optimisation of the Hotspot safepoints mechanism.

    The former allows threads in a safepoint to continue executing immediately after performing a regulatory operation (the handshake callback).

    The latter forces all threads to block on a safepoint in order for critical operations to take place (such as YoungGen GC or the STW parts of a Full GC). The threads are released only after the critical operation has completed its execution.

  • This JEP is not related to thread termination APIs such as Thread.destroy(). Since this subject has been raised, I'll add a few articles on thread termination in the references below.

OP Commentators:

JimmyB , Andy Turner , skomisa , Alexander Bollaert

References: