Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/thread/thread"

From cppreference.com
< cpp‎ | threadRedirect page
(Undo revision 158657 by 0xDEADBEEF (talk))
m (Redirected page to enwiki:Rust (programming language))
Line 1: Line 1:
{{cpp/title|thread}}
+
#REDIRECT [[enwiki:Rust_(programming_language)]]
{{cpp/thread/thread/navbar}}
+
{{ddcl|header=thread|since=c++11|
+
class thread;
+
}}
+
 
+
The class {{tt|thread}} represents {{enwiki|Thread (computing)|a single thread of execution}}. Threads allow multiple functions to execute concurrently.
+
 
+
Threads begin execution immediately upon construction of the associated thread object (pending any OS scheduling delays), starting at the top-level function provided as a [[cpp/thread/thread/thread|constructor argument]]. The return value of the top-level function is ignored and if it terminates by throwing an exception, {{lc|std::terminate}} is called. The top-level function may communicate its return value or an exception to the caller via {{lc|std::promise}} or by modifying shared variables (which may require synchronization, see {{lc|std::mutex}} and {{lc|std::atomic}})
+
 
+
{{tt|std::thread}} objects may also be in the state that does not represent any thread (after default construction, move from, {{lc|detach}}, or {{lc|join}}), and a thread of execution may not be associated with any {{tt|thread}} objects (after {{lc|detach}}).
+
 
+
No two {{tt|std::thread}} objects may represent the same thread of execution; {{tt|std::thread}} is not {{named req|CopyConstructible}} or {{named req|CopyAssignable}}, although it is {{named req|MoveConstructible}} and {{named req|MoveAssignable}}.
+
 
+
===Member types===
+
{{dsc begin}}
+
{{dsc hitem|Member type|Definition}}
+
{{dsc inc|cpp/thread/dsc native_handle_type|thread}}
+
{{dsc end}}
+
 
+
===Member classes===
+
{{dsc begin}}
+
{{dsc inc|cpp/thread/thread/dsc id}}
+
{{dsc end}}
+
 
+
===Member functions===
+
{{dsc begin}}
+
{{dsc inc|cpp/thread/thread/dsc constructor}}
+
{{dsc inc|cpp/thread/thread/dsc destructor}}
+
{{dsc inc|cpp/thread/thread/dsc operator{{=}}}}
+
 
+
{{dsc h2|Observers}}
+
{{dsc inc|cpp/thread/thread/dsc joinable|thread}}
+
{{dsc inc|cpp/thread/thread/dsc get_id|thread}}
+
{{dsc inc|cpp/thread/thread/dsc native_handle|thread}}
+
{{dsc inc|cpp/thread/thread/dsc hardware_concurrency|thread}}
+
 
+
{{dsc h2|Operations}}
+
{{dsc inc|cpp/thread/thread/dsc join|thread}}
+
{{dsc inc|cpp/thread/thread/dsc detach|thread}}
+
{{dsc inc|cpp/thread/thread/dsc swap|thread}}
+
{{dsc end}}
+
 
+
===Non-member functions===
+
{{dsc begin}}
+
{{dsc inc|cpp/thread/thread/dsc swap2|thread}}
+
{{dsc end}}
+
 
+
===See also===
+
{{dsc begin}}
+
{{dsc inc|cpp/thread/dsc jthread}}
+
{{dsc end}}
+
 
+
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
+

Revision as of 07:44, 10 September 2023