1 Language Model
2 Syntactic Forms
3 Datatypes
4 Structures
5 Classes and Objects
6 Units
7 Contracts
8 Pattern Matching
9 Control Flow
10 Concurrency
11 Macros
12 Input and Output
13 Reflection and Security
14 Operating System
15 Memory Management
16 Running PLT Scheme
Bibliography
Index
On this page:
make-thread-group
thread-group?
current-thread-group
Version: 4.0.2

 

13.7 Thread Groups

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

(make-thread-group [group])  thread-group?

  group : thread-group? = (current-thread-group)

Creates a new thread group that belongs to group.

(thread-group? v)  boolean?

  v : any/c

Returns #t if v is a thread group value, #f otherwise.

(current-thread-group)  thread-group?

(current-thread-group group)  void?

  group : thread-group?

A parameter that determines the thread group for newly created threads.