![]() |
typedef thread_pool static_thread_pool;
|
Name |
Description |
|---|---|
|
Executor implementation type used to submit functions to a thread pool. |
|
|
Executor used to submit functions to a thread pool. |
|
|
Fork-related event notifications. |
|
|
Scheduler used to schedule receivers on a thread pool. |
|
Name |
Description |
|---|---|
|
Attaches the current thread to the pool. |
|
|
Obtains the executor associated with the pool. |
|
|
Obtains the executor associated with the pool. |
|
|
Joins the threads. |
|
|
Notify the execution_context of a fork-related event. |
|
|
Obtains the scheduler associated with the pool. |
|
|
Stops the threads. |
|
|
thread_pool [constructor] |
Constructs a pool with an automatically determined number of threads.
|
|
Waits for threads to complete. |
|
|
~thread_pool [destructor] |
Destructor. |
|
Name |
Description |
|---|---|
|
Destroys all services in the context. |
|
|
Shuts down all services in the context. |
|
Name |
Description |
|---|---|
|
(Deprecated: Use make_service().) Add a service object to the execution_context. |
|
|
Determine if an execution_context contains a specified service type. |
|
|
Creates a service object and adds it to the execution_context. |
|
|
Obtain the service object corresponding to the given type. |
The thread pool class is an execution context where functions are permitted to run on one of a fixed number of threads.
To submit functions to the thread pool, use the dispatch
, post or defer
free functions.
For example:
void my_task()
{
...
}
...
// Launch the pool with four threads.
asio::thread_pool pool(4);
// Submit a function to the pool.
asio::post(pool, my_task);
// Submit a lambda object to the pool.
asio::post(pool,
[]()
{
...
});
// Wait for all tasks in the pool to complete.
pool.join();
Header: asio/static_thread_pool.hpp
Convenience header: asio.hpp