##### thread_pool::thread_pool (6 of 6 overloads)

Constructs a pool with a specified number of threads.

    template<
        typename Allocator>
    thread_pool(
        allocator_arg_t ,
        const Allocator & a,
        std::size_t num_threads,
        const execution_context::service_maker & initial_services);

Construct with a service maker, to create an initial set of services that will be installed into the execution context at construction time.

###### Parameters

a

  An allocator that will be used for allocating objects that are associated with the execution context, such as services and internal state for I/O objects.

num_threads

  The number of threads required.

initial_services

  Used to create the initial services. The `make` function will be called once at the end of `execution_context` construction.