Struct ThreadPool

Source
pub struct ThreadPool {
    pub workers: Vec<Worker>,
    pub sender: Sender<Box<dyn FnOnce() + Send + 'static>>,
}
Expand description

§ThreadPool

ThreadPool - Struct representing a thread pool.

§Example

Create an instance of ThreadPool:

 
let pool = ThreadPool::new(10);

This will create 10 workers (threads).

Than you will able to use execute method, which will start task execution.

And since this method gets a closure or a regular function in the parameter:

§#1

pool.execute(|| { 
    println!("Yoo!"); 
});
  

§#2

pool.execute(some_function);

Fields§

§workers: Vec<Worker>§sender: Sender<Box<dyn FnOnce() + Send + 'static>>

Implementations§

Source§

impl ThreadPool

Source

pub fn new(size: usize) -> Self

Creates a new thread pool with the specified size.

§Arguments
  • size - The number of threads in the thread pool.
§Panics

Panics if the size is 0.

Source

pub fn execute<F>(&self, f: F)
where F: FnOnce() + Send + 'static,

Executes a job in the thread pool.

§Arguments
  • f - The closure or function representing the job to be executed.
§Example
let pool = ThreadPool::new(4);

pool.execute(move || {
    println!("Working on a job");
});

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.