[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: Multithreaded application development
From:       Charles Samuels <charles () kde ! org>
Date:       2001-06-17 0:52:53
[Download RAW message or body]

On Saturday 16 June 2001 05:25 pm, Waldo Bastian wrote:

> On Saturday 16 June 2001 04:30 pm, Aurelien Gateau wrote:
> > Hi !
> >
> > I'm writting a KDE application which could really benefit using threads.
> > I wanted to use Qt-mt, but I read that it was not possible since KDE
> > currently doesn't link against Qt-mt. I would like to avoid using OS
> > specific thread libraries, so I ended up using the
> > "QTimer::start(0,false)" trick to get my job done in the background, but
> > it's not that efficient and the GUI doesn't response very quickly.
> > I would like to now what is the current politic regarding threads in KDE
> > applications ?
>
> 1) Don't do it
> 2) If you made it to this point, KDE doesn't support it right now since we
> would have to link against qt-mt for that. (As you already found out)
> 3) For KDE 3.0 I guess it would make sense to use qt-mt by default not
> withstanding point 1). For that it would be helpfull if people started to
> share their experiences with multi-threading & KDE so that we know what to
> watch out for.
>
> This recent slashdot article about multithreading seems to be very nice.
>
> Rik also wrote some interesting stuff about threading. I'm sure he will
> react to your msg as well :-)

I'm not rik, however, I too used threads (SDL threads, actually), see 
kdeaddons/noatun-plugins/nexscope/

I few good rules to live by when threading:

don't use one QString (or for that matter, any Qt class) across the two 
threads- ever, mutex or not, unless you know what it is you're doing 
(implicit sharing, you can work around it by using copies, most of the 
classes support forcing a copy). 

Don't make X calls across two threads.  I'm using SDL in the second thread, 
while this probably counts as doing this, but it works reliably, so I'm not 
complaining :)

Feel free to wrap pthread's thread and mutex library by a class.  In fact, 
I'de highly recommend this, it makes it a lot easier.  I wrapped SDL's thread 
stuff in a class, doing the same to pthreads would be easy.  Feel free to 
steal my code.

Threading makes a lot of stuff a lot easier, despite what some of you all 
have said ;)

-Charles
 
>> Visit http://master.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic