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

List:       suse-programming
Subject:    Re: Datenaustausch zwischen Threads
From:       "Michael Wesp" <michael () wesp ! de>
Date:       2003-07-16 15:47:31
[Download RAW message or body]

Danke, Du hast mir eine gutes Stück weitergeholfen.


Gruß

Michl




----- Original Message -----
From: "Michael Matz" <matz@suse.de>
To: "Michael Wesp" <michael@wesp.de>
Cc: <suse-programming@suse.com>
Sent: Wednesday, July 16, 2003 3:42 AM
Subject: Re: Datenaustausch zwischen Threads


> Hi,
>
> On Tue, 15 Jul 2003, Michael Wesp wrote:
>
> > Wenn ich Dich recht verstanden habe, könnte ich den Zugriff auf die
> > globalen Variablen testen, wenn ich sie in gewissen Abständen polle. Die
> > Threadsynchronisierung sorgt dann dafür, daß das ganze effizient ohne
> > Polling funktioniert, und der Thread bei Änderung einer relevanten
> > Variable aufgeweckt wird und bis dahin keine Rechenzeit verbrät.
> >
> > Habe ich das richtig verstanden?
>
> Jupp.
>
> Sowas wie (pseudo-code):
>
> pthread_cond_t machwas;
> char *message;
> thread1() {
>   while (1) {
>     warte_auf (&machwas);
>     printf ("got message: %s\n", message);
>   }
> }
> thread2() {
>   message = "Yeah";
>   pthread_cond_broadcast (&machwas);
> }
>
> Da sind jetzt keine mutexe dabei, die aber notwendig sind.  Aber hier wird
> quasi in warte_auf() (welches pthread_cond_wait benutzen muss)  darauf
> gewartet, das irgenein anderer Thread die Condition Variable 'machwas'
> "aktiviert".
>
> Du musst natuerlich auch Nachrichten zurueckschicken koennen, damit
> thread2() mitbekommt, wann thread1() mit dem Verarbeiten (oder wenigstens
> wegspeichern) der Nachricht fertig ist.  Also noch ne condvar 'binfertig'
> dazu, auf die in thread2() gewartet wird, und auf die in thread1()
> gebroadcastet wird.
>
> > > [... /proc kann man nicht beschreiben ...]
> >
> > Das wusste ich nicht. Ich habe gedacht, das laesst sich ganz normal
> > benutzen.
>
> Noe.  Nicht in dem Sinne.  Es liefert mehr oder minder Informationen ueber
> das System und die Prozesse.  Es gehoeren auch schreibbare Dateien dazu,
> mit deren Hilfe man einige Systemparameter aendern kann.  Aber da kann man
> nicht einfach reinschreiben.  Wenn man ehh schon Threads benutzt will man
> sowieso nicht durchs Dateisystem gehen, nur um Daten auszutauschen.
> Wuerde viel zu langsam sein.
>
>
> Ciao,
> Micha.
>
>
> --
> Um die Liste abzubestellen, schicken Sie eine Mail an:
>     suse-programming-unsubscribe@suse.com
> Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
> Sie eine Mail an: suse-programming-help@suse.com
>
>



-- 
Um die Liste abzubestellen, schicken Sie eine Mail an:
    suse-programming-unsubscribe@suse.com
Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
Sie eine Mail an: suse-programming-help@suse.com

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

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