[#BloombergLP-bdlmt-Throttle-initialize-0f] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlmt.adoc[bdlmt]::xref:BloombergLP/bdlmt/Throttle.adoc[Throttle]::initialize :relfileprefix: ../../../ :mrdocs: Initialize this `Throttle` to limit the average period of actions permitted to the specified `nanosecondsPerAction`, and the maximum number of simultaneous actions allowed to the specified `maxSimultaneousActions`. Use the monotonic system clock to measure time (see []Clock‐Types)). The configured throttle will over time limit the average number of actions permitted to a rate of `1 / nanosecondsPerAction`. If `maxSimultaneousActions` is 0, the throttle will be configured to permit no actions, otherwise if `nanosecondsPerAction` is 0, the throttle will be configured to permit all actions. The behavior is undefined unless `0 <= nanosecondsPerAction`, `0 <= maxSimultaneousActions`, `0 < nanosecondsPerAction || 0 < maxSimultaneousActions`, and `maxSimultaneousActions * nanosecondsPerActionLeak <= LLONG_MAX`. Note that the behavior for other methods is undefined unless this `Throttle` is initialized (either using one of the overloads of this function, or a `BDLMT_THROTTLE_INIT` macro) prior to being called. == Synopsis Declared in `<bdlmt_throttle.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void initialize( int maxSimultaneousActions, xref:BloombergLP/bdlmt/Throttle.adoc[Int64] nanosecondsPerAction, std::chrono::steady_clock const&); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#