View source code
Display the source code in core/thread.d from which this page was generated on
github.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Page wiki
View or edit the community-maintained wiki page associated with this page.
Class core.thread.Thread
This class encapsulates all threading functionality for the D programming language. As thread manipulation is a required facility for garbage collection, all user threads should derive from this class, and instances of this class should never be explicitly deleted. A new thread may be created using either derivation or composition, as in the following example.
Inherits from
-
(base class)Object
Constructors
Name | Description |
---|---|
this
|
Initializes a thread object which is associated with a static
D function.
|
this
|
Initializes a thread object which is associated with a dynamic
D function.
|
Fields
Name | Type | Description |
---|---|---|
PRIORITY_DEFAULT
|
const(int) |
The default scheduling priority that is set for a thread. On
systems where multiple scheduling policies are defined, this value
represents the default priority for the scheduling policy of
the process.
|
PRIORITY_MAX
|
const(int) |
The maximum scheduling priority that may be set for a thread. On
systems where multiple scheduling policies are defined, this value
represents the maximum valid priority for the scheduling policy of
the process.
|
PRIORITY_MIN
|
const(int) |
The minimum scheduling priority that may be set for a thread. On
systems where multiple scheduling policies are defined, this value
represents the minimum valid priority for the scheduling policy of
the process.
|
Properties
Name | Type | Description |
---|---|---|
isDaemon
[get]
|
bool |
Gets the daemon status for this thread. While the runtime will wait for all normal threads to complete before tearing down the process, daemon threads are effectively ignored and thus will not prevent the process from terminating. In effect, daemon threads will be terminated automatically by the OS when the process exits. |
isDaemon
[set]
|
bool |
Sets the daemon status for this thread. While the runtime will wait for all normal threads to complete before tearing down the process, daemon threads are effectively ignored and thus will not prevent the process from terminating. In effect, daemon threads will be terminated automatically by the OS when the process exits. |
isRunning
[get]
|
bool |
Tests whether this thread is running. |
name
[get]
|
string |
Gets the user-readable label for this thread. |
name
[set]
|
string |
Sets the user-readable label for this thread. |
priority
[get]
|
int |
Gets the scheduling priority for the associated thread.
|
priority
[set]
|
int |
Sets the scheduling priority for the associated thread.
|
Methods
Name | Description |
---|---|
getAll
|
Provides a list of all threads currently being tracked by the system. |
getThis
|
Provides a reference to the calling thread. |
join
|
Waits for this thread to complete. If the thread terminated as the result of an unhandled exception, this exception will be rethrown. |
opApply
|
Operates on all threads currently being tracked by the system. The
result of deleting any Thread object is undefined.
|
sleep
|
Suspends the calling thread for at least the supplied period. This may
result in multiple OS calls if period is greater than the maximum sleep
duration supported by the operating system.
|
start
|
Starts the thread and invokes the function or delegate passed upon construction. |
yield
|
Forces a context switch to occur away from the calling thread. |
factory
|
Create instance of class specified by the fully qualified name
classname .
The class must either have no constructors or have
a default constructor.
|
opCmp
|
Compare with another Object obj.
|
opEquals
|
Returns !=0 if this object does have the same contents as obj.
|
toHash
|
Compute hash function for Object .
|
toString
|
Convert Object to a human readable string.
|
Example
class DerivedThread : Thread { this() { super(&run); } private: void run() { // Derived thread running. } } void threadFunc() { // Composed thread running. } // create and start instances of each type auto derived = new DerivedThread().start(); auto composed = new Thread(&threadFunc).start();
Authors
Sean Kelly, Walter Bright, Alex Rønne Petersen, Martin Nowak
License
Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)