sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #10498
Re: C++, STL og threads
Anders Johansen wrote:
...
> Det vides at Rouge Wave STL i den version der er inkluderet i Borland
> C++ Builder 4.0 er trådsikkert, men det er jo en Windows-ting, og dermed
> ikke portabelt :( Desuden er det jo nok bundet til C++B's trådmodel
> (Win32), så det...
>
> Infosøgning på tråde peger på, at der er utallige implementationer af
> det. User-mode tråde vil nok virke, da det helt sikkert har adgang til
> hovedprogrammets lager. Om kernetråde gør, afhænger af de forskellige OS
> implementationer. JEg har en grim fornemmelse af, at nogen af dem i
> virkeligheden er forklædte fork() ting.
Mit gæt er at disse biblioteker til Gnu C++ slet ikke bruger tråde,
hvorfor skulle de det ?
Ellers må du hente kildeteksten til STL og checke om de laver
noget "tråde". Men i så fald bliver implementationen af C++/STL jo
pludselig meget OS specifikt, så det lyder ikke sandsynligt.
> Konklusion:
> I UNIX-verden bliver dísse to ting åbenbart ikke diskuteret samtidigt.
> Formegentlig fordi der er så pokkers mange måder at lave tråde på, og
> man derfor har valgt at se lidt bort fra det. Det gør mig selvfølgelig
> lidt utryg, selvom det fremgår af "STL programming manual and reference"
> at hver STL-container håndterer allokering og deallokering selv.
Men hvorfor blande tråde ind i dette?
Forhåbetlig er STL kald (ofte "C++ makroer/templates") jo lavet
rent "sekventielt".
> For mit projekt betyder det, at jeg må vælge en metode hvor STL-adgang
> kun sker i hovedprogrammet. Det er heldigvis muligt, da jeg er på et
> tidligt tidspunkt i udviklingen.
Har du prøvet hvad der sker hvis der anvendes lokalt ?
Hvis du allokerer og deallokere inden tråden slutter, så skulle
det i teorien også virke (forudsat der ikke sker andre sjove ting
med tråde i STL)
> Morale:
> Undersøg tingene *før* du antager det kan lade sig gøre. Eller som
> akedemikere siger: "Måneder i laboratoriet kan spare dig for timer på
> biblioteket" :D
Det nemmeste er jo at se i kildetekst til STL :)
(evt. grep mv. efter relevante kald)
--
mvh Frank Damgaard frda@xxxxxxxxxxxxx | frank@xxxxxxxx |fido 2:236/15.2
References