/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Alternativ til events?
Fra : Klaus Petersen


Dato : 03-09-04 23:21

Hej ng.

Jeg er ved at portere et windows program til linux og i den proces er jeg
stødt på en del, der bruger windows events til b.la. at få een tråd til at
vente på at en anden tråd når en bestemt tilstand.

Til det er der brugt WaitForSingleObject på en event, som den anden tråd
sætter med SetEvent når den er i den korrekte tilstand.

Hvad kan man gøre i stedet for?

Jeg har overvejet at bruge observer mønsteret, men ved ikke lige helt
hvordan jeg skal få den til at vente på Update'n.

mvh.
Klaus



 
 
Bertel Brander (03-09-2004)
Kommentar
Fra : Bertel Brander


Dato : 03-09-04 23:49

Klaus Petersen wrote:
> Hej ng.
>
> Jeg er ved at portere et windows program til linux og i den proces er jeg
> stødt på en del, der bruger windows events til b.la. at få een tråd til at
> vente på at en anden tråd når en bestemt tilstand.
>
> Til det er der brugt WaitForSingleObject på en event, som den anden tråd
> sætter med SetEvent når den er i den korrekte tilstand.
>
> Hvad kan man gøre i stedet for?

Bruger du posix thread's?

Jeg tror at det er mutex'er du er ude efter. En hurtig søgning på
google gav denne:

http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html

--
What's in a name?
That which we call a rose by any other name would smell as sweet.
- Juliet
http://home20.inet.tele.dk/midgaard/

Klaus Petersen (04-09-2004)
Kommentar
Fra : Klaus Petersen


Dato : 04-09-04 00:04

> Bruger du posix thread's?
>
> Jeg tror at det er mutex'er du er ude efter. En hurtig søgning på
> google gav denne:
>
> http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html

Et hurtigt kig på linket giver mig indtryk af at det nok kan bruges.

Tak for svaret.



Mogens Hansen (04-09-2004)
Kommentar
Fra : Mogens Hansen


Dato : 04-09-04 05:45


"Klaus Petersen" <ng@spectual.ra.bnaa.dk> wrote:

> Jeg er ved at portere et windows program til linux og i den proces er jeg
> stødt på en del, der bruger windows events til b.la. at få een tråd til at
> vente på at en anden tråd når en bestemt tilstand.
>
> Til det er der brugt WaitForSingleObject på en event, som den anden tråd
> sætter med SetEvent når den er i den korrekte tilstand.
>
> Hvad kan man gøre i stedet for?

Hvis man har brug for portabel multi-threading, synkronisering og eventuelt
netværksfunktionalitet i C++, kan man ofte kigge på Douglas C. Schmidt
arbejde.

F.eks. kan artiklen "Strategies for Implementing POSIX Condition Variables
on Win32" (http://www.cs.wustl.edu/~schmidt/win32-cv-1.html) måske give dig
noget inspiration.
Som der står er koden i artiklen en del af ACE
(http://www.cs.wustl.edu/~schmidt/ACE.html).
Hvis der er en del tråd-design i programmet kunne man overveje at portere
det til at bruge ACE i stedet for Win32, hvorefter det burde kunne oversætte
på en meget lang række platforme, inklusiv Linux.

Der findes meget dokumentation og mange eksempler på ACE hjemmesiden, men
ellers findes der en række bøger
C++ Network Programming, Vol. 1
Douglas C. Schmidt, Stephen D. Huston
ISBN 0-201-60464-7

C++ Network Programming, Vol. 2
Douglas C. Schmidt, Stephenn D. Huston
ISBN 0-201-79525-6

og een jeg ikke kender, men som formodentlig også er udemærket
ACE Programmer's Guide, The: Practical Design Patterns for Network and
Systems Programming
Stephen D. Huston, James Johnson, Umar Syyid
ISBN: 0-201-69971-0

>
> Jeg har overvejet at bruge observer mønsteret, men ved ikke lige helt
> hvordan jeg skal få den til at vente på Update'n.

Observer hjælper ikke med synkroniseringsspørgsmål.
Design patterns som Reactor og Reactor er mere nyttige at kigge på.
Se POSA2
Pattern-Oriented Software Architecture,
Patterns for Concurrent and Networked Objecs
Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Bushmann
ISBN 0-471-60695-2

Venlig hlisen

Mogens Hansen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste