std::launch

From cppreference.com
 
 
Thread support library
Threads
thread (C++11)
this_thread namespace
get_id (C++11)
yield (C++11)
sleep_for (C++11)
sleep_until (C++11)
Mutual exclusion
mutex (C++11)
timed_mutex (C++11)
Generic lock management
lock_guard (C++11)
unique_lock (C++11)
defer_lock_t
try_to_lock_t
adopt_lock_t
(C++11)
(C++11)
(C++11)
lock (C++11)
try_lock (C++11)
defer_lock
try_to_lock
adopt_lock
(C++11)
(C++11)
(C++11)
Condition variables
condition_variable (C++11)
condition_variable_any (C++11)
notify_all_at_thread_exit (C++11)
cv_status (C++11)
Futures
promise (C++11)
future (C++11)
shared_future (C++11)
packaged_task (C++11)
async (C++11)
launch (C++11)
future_status (C++11)
future_error (C++11)
future_category (C++11)
future_errc (C++11)
 
Defined in header <future>
enum class launch : /* unspecified */ {

    async =    /* unspecified */,
    deferred = /* unspecified */,
    /* implementation-defined */

};
(since C++11)

Specifies the launch policy for a task executed by the std::async function. std::launch is a BitmaskType (enumeration, integer, or bitset).

The following constants denoting individual bits are defined by the standard library:

Constant Explanation
std::launch::async a new thread is launched to execute the task asynchronously
std::launch::deferred the task is executed on the calling thread the first time its result is requested (lazy evaluation)

In addition, implementations are allowed to:

  • define additional bits and bitmasks to specify restrictions on task interactions applicable to a subset of launch policies, and
  • enable those additional bitmasks for the first (default) overload of std::async.

[edit] See also

(C++11)
runs a function asynchronously (potentially in a new thread) and returns a std::future that will hold the result
(function template)