Knihovna podpory vláken – cppreference.com

Knihovna podpory vláken

Z cppreference.com
< cpp


C++ zahrnuje vestavěnou podporu pro vlákna, vzájemné vyloučení, podmíněné proměnné a futury.

Vlákna

Vlákne umožňují programům souběžný běh na více procesorových jader.

Vzájemné vyloučení

Algoritmy vzájemného vyloučení (anglicky mutual exclusion algorithms) zabraňují současnému přístupu vícero vláken ke stejným sdíleným zdrojům. Tím zabraňují vzniku datového souběhu a nabízí podporu pro synchronizaci vláken.

Šablona:cpp/thread/dsc shared timed mutex
Definováno v hlavičkovém souboru <mutex>
(C++11)
provides basic mutual exclusion facility
(class) [edit]
provides mutual exclusion facility which implements locking with a timeout
(class) [edit]
provides mutual exclusion facility which can be locked recursively by the same thread
(class) [edit]
provides mutual exclusion facility which can be locked recursively
by the same thread and implements locking with a timeout
(class) [edit]
Definováno v hlavičkovém souboru <shared_mutex>
Generic mutex management
Definováno v hlavičkovém souboru <mutex>
implements a strictly scope-based mutex ownership wrapper
(class template) [edit]
implements movable mutex ownership wrapper
(class template) [edit]
implements movable shared mutex ownership wrapper
(class template) [edit]
tag type used to specify locking strategy
(class) [edit]
tag constants used to specify locking strategy
(constant) [edit]
Generic locking algorithms
(C++11)
attempts to obtain ownership of mutexes via repeated calls to try_lock
(šablona funkce) [edit]
(C++11)
locks specified mutexes, blocks if any are unavailable
(šablona funkce) [edit]
Call once
(C++11)
helper object to ensure that call_once invokes the function only once
(class) [edit]
(C++11)
invokes a function only once even if called from multiple threads
(šablona funkce) [edit]

Podmíněné proměnné

Podmíněná proměnná patří mezi synchronizační primitiva, která umožňují komunikace mezi různými vlákny. Umožňuje vláknům čekat (případně s lhůtou) na upozornění od jiného vlákna, že mohou pokračovat. Podmíněná proměnná je vždy spojená s konkrétním vzájemným vyloučením (mutexem).

Definováno v hlavičkovém souboru <condition_variable>
provides a condition variable associated with a std::unique_lock
(class)
provides a condition variable associated with any lock type
(class)
schedules a call to notify_all to be invoked when this thread is completely finished
(function)
(C++11)
lists the possible results of timed waits on condition variables
(enum)

Futury

Standardní knihovna poskytuje nástroje, jak získat návratové hodnoty a chytat výjimky asynchronních úloh (tedy funkcí prováděných v oddělených vláknech). Tyto hodnoty jsou předávány v sdíleném stavu, do kterého může asynchronní úloha zapsat svou návratovou hodnotu nebo uložit výjimku, a který mohou zkoumat, na který mohou čekat a s kterým mohou i jinak pracovat jiná vlákna, která mají instanci std::future nebo std::shared_future, která k sdílenému stavu odkazuje.

Definováno v hlavičkovém souboru <future>
(C++11)
stores a value for asynchronous retrieval
(class template) [edit]
packages a function to store its return value for asynchronous retrieval
(class template) [edit]
(C++11)
waits for a value that is set asynchronously
(class template) [edit]
waits for a value (possibly referenced by other futures) that is set asynchronously
(class template) [edit]
(C++11)
runs a function asynchronously (potentially in a new thread) and returns a std::future that will hold the result
(šablona funkce) [edit]
(C++11)
specifies the launch policy for std::async
(enum) [edit]
specifies the results of timed waits performed on std::future and std::shared_future
(enum) [edit]
Future errors
reports an error related to futures or promises
(class) [edit]
identifies the future error category
(function) [edit]
identifies the future error codes
(enum) [edit]

Vizte též