pub struct ScheduledThreadPool { /* private fields */ }
Expand description
A pool of threads which can run tasks at specific time intervals.
When the pool drops, all pending scheduled executions will be run, but periodic actions will not be rescheduled after that.
Implementations
sourceimpl ScheduledThreadPool
impl ScheduledThreadPool
sourcepub fn new(num_threads: usize) -> ScheduledThreadPool
pub fn new(num_threads: usize) -> ScheduledThreadPool
sourcepub fn with_name(thread_name: &str, num_threads: usize) -> ScheduledThreadPool
pub fn with_name(thread_name: &str, num_threads: usize) -> ScheduledThreadPool
Creates a new thread pool with the specified number of threads which will be named.
The substring {}
in the name will be replaced with an integer
identifier of the thread.
Panics
Panics if num_threads
is 0.
sourcepub fn execute<F>(&self, job: F) -> JobHandle where
F: FnOnce() + Send + 'static,
pub fn execute<F>(&self, job: F) -> JobHandle where
F: FnOnce() + Send + 'static,
Executes a closure as soon as possible in the pool.
sourcepub fn execute_after<F>(&self, delay: Duration, job: F) -> JobHandle where
F: FnOnce() + Send + 'static,
pub fn execute_after<F>(&self, delay: Duration, job: F) -> JobHandle where
F: FnOnce() + Send + 'static,
Executes a closure after a time delay in the pool.
sourcepub fn execute_at_fixed_rate<F>(
&self,
initial_delay: Duration,
rate: Duration,
f: F
) -> JobHandle where
F: FnMut() + Send + 'static,
pub fn execute_at_fixed_rate<F>(
&self,
initial_delay: Duration,
rate: Duration,
f: F
) -> JobHandle where
F: FnMut() + Send + 'static,
Executes a closure after an initial delay at a fixed rate in the pool.
The rate includes the time spent running the closure. For example, if the rate is 5 seconds and the closure takes 2 seconds to run, the closure will be run again 3 seconds after it completes.
Panics
If the closure panics, it will not be run again.
sourcepub fn execute_at_dynamic_rate<F>(
&self,
initial_delay: Duration,
f: F
) -> JobHandle where
F: FnMut() -> Option<Duration> + Send + 'static,
pub fn execute_at_dynamic_rate<F>(
&self,
initial_delay: Duration,
f: F
) -> JobHandle where
F: FnMut() -> Option<Duration> + Send + 'static,
Executes a closure after an initial delay at a dynamic rate in the pool.
The rate includes the time spent running the closure. For example, if the return rate is 5 seconds and the closure takes 2 seconds to run, the closure will be run again 3 seconds after it completes.
Panics
If the closure panics, it will not be run again.
sourcepub fn execute_with_fixed_delay<F>(
&self,
initial_delay: Duration,
delay: Duration,
f: F
) -> JobHandle where
F: FnMut() + Send + 'static,
pub fn execute_with_fixed_delay<F>(
&self,
initial_delay: Duration,
delay: Duration,
f: F
) -> JobHandle where
F: FnMut() + Send + 'static,
Executes a closure after an initial delay at a fixed rate in the pool.
In contrast to execute_at_fixed_rate
, the execution time of the
closure is not subtracted from the delay before it runs again. For
example, if the delay is 5 seconds and the closure takes 2 seconds to
run, the closure will run again 5 seconds after it completes.
Panics
If the closure panics, it will not be run again.
sourcepub fn execute_with_dynamic_delay<F>(
&self,
initial_delay: Duration,
f: F
) -> JobHandle where
F: FnMut() -> Option<Duration> + Send + 'static,
pub fn execute_with_dynamic_delay<F>(
&self,
initial_delay: Duration,
f: F
) -> JobHandle where
F: FnMut() -> Option<Duration> + Send + 'static,
Executes a closure after an initial delay at a dynamic rate in the pool.
In contrast to execute_at_dynamic_rate
, the execution time of the
closure is not subtracted from the returned delay before it runs again. For
example, if the delay is 5 seconds and the closure takes 2 seconds to
run, the closure will run again 5 seconds after it completes.
Panics
If the closure panics, it will not be run again.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for ScheduledThreadPool
impl Send for ScheduledThreadPool
impl Sync for ScheduledThreadPool
impl Unpin for ScheduledThreadPool
impl !UnwindSafe for ScheduledThreadPool
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more