Chapter 13. Miscellaneous Thread Topics
Threads are a basic feature of the Java platform. As a result, threads interact with several of Java’s other programming and runtime features. In this chapter, we’ll briefly touch on some of these features (and issues), including thread groups, Java security, daemon threads, class loading, exception handling, and memory usage. Some of these topics are interrelated: in particular, the thread group class is used by the security manager as the basis for its decisions. In general, the topics here will complete your understanding of how threads permeate the Java platform.
Thread Groups
All threads belong to a thread group, which, as its name implies, is a group of threads.
Thread groups are defined by the java.lang.ThreadGroup class. Although we
haven’t yet mentioned them, thread groups have been around all along.
Every thread you create automatically belongs to a default thread group
that the Java virtual machine sets up on your behalf. Every thread we’ve
looked at so far belongs to this existing thread group, which is known
as the “main” thread group.
The virtual machine also has a “system” thread group. This thread group contains the threads that handle finalization and weak references. This group does not contain all threads of the virtual machine: some system-level threads (such as the garbage collection thread(s)) have no corresponding Java thread object and do not exist in any Java thread group.
Thread groups are more than just arbitrary ...