[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