linux-l: multithreading mit linux

Gregor Kopij gkopij at kokinet.com
Mo Mai 11 10:15:45 CEST 1998


At 15:20 10.05.98 +0200, you wrote:
>Das nennt sich Copy-on-Write und wird eigentlich bei allen neueren Unixen
gemacht
>und hilft fork() schneller und Speicherplatzsparender zu implementieren.
>Bei Threads liegt aber ein echtes sharing vor, d.h. auch wenn du
schreibend auf
>den Speicher zugreifst, wird er nicht kopiert.
>

Stimmt, danke!

>> Also, keine Angst ;-), es sei denn Du beschreibst wirklich den Speicher von
>> allen Kindern. Dann hast Du ein "kleines" Problem, das man aber mit
>> Shared-Memory in den Griff bekommen kann. Mußt Du Threads benutzen? Mit
>> "direkter" Programmierung kann man es besser kontrollieren. 
>
>
>Das "Problem" hast du nur bei fork(). pthread_create() shared den
>Speicher richtig [beide rufen clone() auf, nur fork() sagt halt noch das
>es getrennten Speicher haben will. In sofern gibt es zwischen Prozessen
>und Threads im Linux keinen so grossen Unterschied wie es den zum
>Beispiel bei einer reinen User-Space implementation von Threads gibt].
Das stimmt auch! Bei anderen Unixen (Solaris) lohn es sich auch von der
Performance her auf threads zurückzugrefen.

>Es stimmt, das es schwerer ist mit Threads zu programmieren als mit fork()
>- die Programme koennen wenn man alles mal verstanden hat aber erheblich
>schoener, kuerzer und effizienter werden
Geschmackssache ;-)

Gruß

Gregor





Mehr Informationen über die Mailingliste linux-l