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 ...

Get Java Threads, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.