A thread group is a collection of threads and other thread groups that have equal claim to the CPU. By nesting thread groups and by creating certain threads within certain groups, a programmer can control the amount of CPU allocated to a set of threads. Every thread belongs to a thread group, which is determined by the current-thread-group parameter when the thread is created. Thread groups and custodians (see Custodians) are independent.
The root thread group receives all of the CPU that the operating system gives Racket. Every thread or nested group in a particular thread group receives equal allocation of the CPU (a portion of the group’s access), although a thread may relinquish part of its allocation by sleeping or synchronizing with other processes.