[Interest] how to run 21 threads concurrently

Sujan Dasmahapatra sujan.dasmahapatra at gmail.com
Fri Oct 5 19:13:07 CEST 2012


Is this code snippet correct in using semaphores. It's hanging for me

[code]

QSemaphore mSemaphore1;

int nZ=1;

for (int z=0;z<nZ;z++)

{

Q_ASSERT( &mSemaphore1 );

Th = QtConcurrent::run(

this,&UNRSTParser::ProcessZLayer,z);

mSemaphore1.release(1);

values += (nX*nY);

}

mSemaphore1.acquire(nZ);


[/code]

On Fri, Oct 5, 2012 at 2:12 PM, Jan Kundrát <jkt at flaska.net> wrote:

> On 10/05/12 00:27, Sascha Cunz wrote:
> > But, after all, the above code is a so called busy-loop. It will eat up
> 1 core
> > almost completely (At least on most OS-configurations).
>
> Are you sure that a call to QFuture::waitForFinished() consumes CPU?
> That would be highly suspicious. Yes, the call will block and wait until
> the QFuture succeeds, but that's different from what a busy loop is.
>
> Using waitForFinished() on each future is easier and more
> straightforward than adding semaphores.
>
> With kind regards,
> Jan
>
> --
> Trojita, a fast e-mail client -- http://trojita.flaska.net/
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>



-- 
Regards
Sujan Dasmahapatra
skype: sujan.dasmahapatra
yahoo msn : dasmahapatra.aerodynamics at yahoo.co.in
Mobile no : +966-530184511
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20121005/d6afdff1/attachment.html>


More information about the Interest mailing list