Re: thread pool
On 1/8/2015 8:46 AM, Philipp Kraus wrote:
Hello,
I'm not firm with Java 1.7 / 1.8 thread pool structure, so I need a
little help:
I have got a Collection of Collections of Runnables, so the Collections
must be processed in a sequential order, but the Runnable objects can be
processed in parallel. The next collection can be proccess if the
collection before is finished (join-wait structure). All collections
should be processed in a infinity loop, but the loop should be paused
after or before all collections been processed. In pseudo code:
class MainThread extends Thread
{
threadpool p;
void run()
{
while (true)
{
thread can be paused
foreach collection c
{
p.add(c);
p.wait_until_all_finished();
}
thread can be paused
}
}
}
My question is, which thread structure can I used for this problem and
in which way can I create the main thread. The main thread can created
on program startup and shutdown on program shutdown. I have got around
100 of runnable collections and more than 10.000 elements on each
runnable collection. IMHO a normal thread object for my master thread
should be okay and a WorkStealingPool for the inner loop, but how I can
use this in the correct way?
If you have a:
List<List<Runnable>> tasks
then I think the easiest way to execute as specified is:
for(List<Runnable> tsklst : tasks)
tsklst.parallelStream().forEach(action -> action.run());
I am assuming Java 8.
Arne