pub struct ThreadPool { /* private fields */ }Implementations§
Source§impl ThreadPool
impl ThreadPool
Sourcepub fn new(pool_size: u8) -> Self
pub fn new(pool_size: u8) -> Self
Creates a new thread pool with the following behavior constraints:
- pool_size is
0: runs in multithreaded default mode using maximum parallelism - pool_size is
1: runs in single-threaded mode (all jobs are run in the main thread) - pool_size is
1<N<=255: runs in multithreaded mode withNjobs
Sourcepub fn execute<F>(&self, f: F) -> Result<(), Box<dyn Error>>
pub fn execute<F>(&self, f: F) -> Result<(), Box<dyn Error>>
Executes a job on the thread pool.
§Behavior
- Single-threaded mode (
max_jobs=1): Job executes synchronously in the calling thread - Multi-threaded mode: Job is queued and executed asynchronously by worker threads
Sourcepub fn is_single_threaded(&self) -> bool
pub fn is_single_threaded(&self) -> bool
Returns true if running in single-threaded mode.
Single-threaded mode is active when max_jobs=1, resulting in:
- No worker threads spawned
- No message passing channel created
- All jobs executed synchronously in the main thread
Trait Implementations§
Source§impl Default for ThreadPool
impl Default for ThreadPool
Source§impl Display for ThreadPool
impl Display for ThreadPool
Auto Trait Implementations§
impl Freeze for ThreadPool
impl !RefUnwindSafe for ThreadPool
impl Send for ThreadPool
impl Sync for ThreadPool
impl Unpin for ThreadPool
impl !UnwindSafe for ThreadPool
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more