5 Stimmen

Ist msgsnd() thread- und/oder prozesssicher?

Was passiert, wenn zwei pthreads die Funktion msgsnd() zur "gleichen" Zeit aufrufen und eine Nachricht in dieselbe Nachrichtenwarteschlange stellen?

Was ist, wenn zwei Prozesse dasselbe tun? Spielt es eine Rolle, ob es sich um Threads oder Prozesse handelt?

Speziell interessiert für Linux 2.6.15-2.5 #1 SMP PREEMPT Tue Sep 19 10:56:25 CDT 2006 x86_64 x86_64 x86_64 GNU/Linux

9voto

Chris Arguin Punkte 11608

Le site Manpage für pthreads sagt Ihnen, was Sie wissen wollen:

Eine thread-sichere Funktion ist eine Funktion, die sicher von mehreren Threads gleichzeitig aufgerufen werden kann (d.h. sie liefert unabhängig davon die gleichen Ergebnisse).

POSIX.1-2001 und POSIX.1-2008 verlangen, dass alle im Standard spezifizierten Funktionen thread-sicher sein müssen...

msgsnd gehört zu den von POSIX definierten Funktionen und ist von dieser Anforderung nicht ausgenommen. Dabei spielt es keine Rolle, ob es sich um zwei Threads oder zwei Prozesse handelt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X