[#BloombergLP-bdlmt-ThreadMultiplexor] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlmt.adoc[bdlmt]::ThreadMultiplexor :relfileprefix: ../../ :mrdocs: Mechanism that partitions threads to process user‐defined jobs. == Synopsis Declared in `<bdlmt_threadmultiplexor.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class ThreadMultiplexor; ---- == Description This class provides a mechanism for facilitating the use of multiple threads to perform various user‐defined functions ("jobs") when some degree of collaboration between threads is required. The thread multiplexor is configured with a total number of "processors", representing the number of threads that may process jobs at any particular time. Additional threads enqueue jobs to a pending job queue, which is processed by the next available processing thread. == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlmt/ThreadMultiplexor/Job.adoc[`Job`] | A callback of this type may be passed to the `processJob` method. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlmt/ThreadMultiplexor/2constructor.adoc[`ThreadMultiplexor`] [.small]#[constructor]# | Create a thread multiplexor with the specified processor and queue limits. | xref:BloombergLP/bdlmt/ThreadMultiplexor/2destructor.adoc[`~ThreadMultiplexor`] [.small]#[destructor]# | Destroy this thread multiplexor object. | xref:BloombergLP/bdlmt/ThreadMultiplexor/maxProcessors.adoc[`maxProcessors`] | Return the maximum number of active processors. | xref:BloombergLP/bdlmt/ThreadMultiplexor/numProcessors.adoc[`numProcessors`] | Return the current number of active processors. | xref:BloombergLP/bdlmt/ThreadMultiplexor/processJob.adoc[`processJob`] | Process or enqueue the specified `job` based on available processors. | xref:BloombergLP/bdlmt/ThreadMultiplexor/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration<ThreadMultiplexor, UsesBslmaAllocator>`] | Declare that this type uses a `bslma` allocator. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#