|
|
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}}
| + | |