[#BloombergLP-bdlmt-Throttle-initialize-09] = 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`. Optionally specify `clockType` to indicate the system clock that will be used to measure time (see []Clock‐Types)). If `clockType` is not supplied the monotonic system clock is used. 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, xref:BloombergLP/bsls/SystemClockType/Enum.adoc[bsls::SystemClockType::Enum] clockType = bsls::SystemClockType::e_MONOTONIC); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#