[Interest] how to run 21 threads concurrently
André Somers
andre at familiesomers.nl
Thu Oct 4 15:25:57 CEST 2012
Op 4-10-2012 15:21, Sujan Dasmahapatra schreef:
>
> I am not able to run my threads concurrently please help.
> How can I run 21 threads concurrently and get the job done by 8 cpus
> what I have in my machine.
>
> I am doing like this
> [code]
>
> std::vector<QFuture<void> > Threads;
> QFuture<void> Th;
>
> for(int z=0; z<21; z++)
> {
> Th = QtConcurrent::run(this,&UnrstParser,z);
> Thraeds.push_back(Th);
> }
> for(int th=0; th<Threads.size(); th++)
> {
> if(Threads[th].isRunning())
> Threads[th].waitForFinished();
> Threads[th].cancel();
> }
> Threads.clear();
> [/code]
>
> With this first few threads are probably running but not all the
> threads. As it's supposed to generate some files by each thread which
> is not being generated. Please help.
>
>
QtConcurrent will use as many threads as it deems useful, based on the
system you are running on. Unless you have a 21 core system, it is
probably not useful to run 21 threads your your task.
However, QThreadPool has methods to change how many threads are
considdered useful, so you should look into using that class.
André
More information about the Interest
mailing list