Manual Reference Pages - THREAD::POOL::SIMPLE (3)
Thread::Pool::Simple - A simple thread-pool implementation
my $pool = Thread::Pool::Simple->new(
min => 3, # at least 3 workers
max => 5, # at most 5 workers
load => 10, # increase worker if on average every worker has 10 jobs waiting
init => [\&init_handle, $arg1, $arg2, ...] # run before creating worker thread
pre => [\&pre_handle, $arg1, $arg2, ...] # run after creating worker thread
do => [\&do_handle, $arg1, $arg2, ...] # job handler for each worker
post => [\&post_handle, $arg1, $arg2, ...] # run before worker threads end
passid => 1, # whether to pass the job id as the first argument to the &do_handle
lifespan => 10000, # total jobs handled by each worker
my ($id1) = $pool->add(@arg1); # call in list context
my $id2 = $pool->add(@arg2); # call in scalar conetxt
$pool->add(@arg3) # call in void context
my @ret = $pool->remove($id1); # get result (block)
my $ret = $pool->remove_nb($id2); # get result (no block)
$pool->cancel($id1); # cancel the job
$pool->cancel_all(); # cancel all jobs
$pool->join(); # wait till all jobs are done
$pool->detach(); # dont wait.
Thread::Pool::Simple provides a simple thread-pool implementaion
without external dependencies outside core modules.
Jobs can be submitted to and handled by multi-threaded workers
managed by the pool.
Jianyuan Wu, <firstname.lastname@example.org>
COPYRIGHT AND LICENSE
Copyright 2007 by Jianyuan Wu
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
|perl v5.20.3 ||SIMPLE (3) ||2010-09-23 |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.