Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

WIN32 Sleep(0) für Linux

18 views
Skip to first unread message

Lukas John

unread,
Jun 13, 2001, 9:27:37 AM6/13/01
to
Hallo zusammen,

ich setze gerade ein Multithreaded Program von Win32 auf Linux um und
brauche an folgender
Stelle etwas Hilfe.

Bei Windows gibt es den Befehl "Sleep( 0 )" der bei einem multithreaded
Program, in dem
aktuellen thread die Prozessorzeit des threads an einen anderen thread, mit
gleicher Priorität, weitergibt.

Was gibt es vergleichbares unter Linux ?

Ich habe im "man" unter sleep nachgeschaut und als Erklärung nur gefunden,
daß sleep eine bestimmte
Anzahl von Sekunden wartet.


Lukas


King Leo (Martin Oberzalek)

unread,
Jun 13, 2001, 10:12:25 AM6/13/01
to
"Lukas John" <Jo...@TriNodE.com> writes:

> Bei Windows gibt es den Befehl "Sleep( 0 )" der bei einem multithreaded
> Program, in dem
> aktuellen thread die Prozessorzeit des threads an einen anderen thread, mit
> gleicher Priorität, weitergibt.

--
Der Nachteil an Linux ist, dass man sich irgendwann nicht mehr an den
Installationsvorgang erinnern kann.

Rolf Magnus

unread,
Jun 13, 2001, 11:38:58 AM6/13/01
to
Lukas John wrote:

> Bei Windows gibt es den Befehl "Sleep( 0 )" der bei einem multithreaded
> Program, in dem
> aktuellen thread die Prozessorzeit des threads an einen anderen thread,
> mit gleicher Priorität, weitergibt.

Wie bekommt er den Prozessor wieder zurück?

> Was gibt es vergleichbares unter Linux ?
>
> Ich habe im "man" unter sleep nachgeschaut und als Erklärung nur gefunden,
> daß sleep eine bestimmte
> Anzahl von Sekunden wartet.

Verwenden kannst Du es prinzipiell auch dafür. Der thread wird eben für die
angegebene Zeit nicht vom Scheduler aufgerufen. Wenn eine Sekunde zu lang
ist, sollte nanosleep funktionieren.

Felix von Leitner

unread,
Jun 13, 2001, 12:19:30 PM6/13/01
to
Thus spake Lukas John (Jo...@TriNodE.com):

> ich setze gerade ein Multithreaded Program von Win32 auf Linux um und
> brauche an folgender Stelle etwas Hilfe.

Iiiiih, Windows-Code unter Linux!

Warum bleibt ihr alle mit eurem Windows-Kot nicht da, wo er herkommt?
Und überhaupt, diese ganze Multithreading-Scheiße ist unter anständigen
Betriebssystemen wie Linux überflüssig und schadet sogar.

> Bei Windows gibt es den Befehl "Sleep( 0 )" der bei einem
> multithreaded Program, in dem aktuellen thread die Prozessorzeit des
> threads an einen anderen thread, mit gleicher Priorität, weitergibt.

Igitt, was für ein Kludge.

> Was gibt es vergleichbares unter Linux ?

Wozu?
Wenn du synchronisieren willst, nimm Semaphoren.

Wenn ich diese widerlichen Würg-Kludges schon sehe wird mir schlecht.

> Ich habe im "man" unter sleep nachgeschaut und als Erklärung nur
> gefunden, daß sleep eine bestimmte Anzahl von Sekunden wartet.

Wie der Name schon sagt.

Felix

Rainer Weikusat

unread,
Jun 13, 2001, 1:54:22 PM6/13/01
to
"Lukas John" <Jo...@TriNodE.com> writes:
> Bei Windows gibt es den Befehl "Sleep( 0 )" der bei einem
> multithreaded Program, in dem aktuellen thread die Prozessorzeit des
> threads an einen anderen thread, mit gleicher Priorität, weitergibt.

sched_yield(2)

--
SIGSTOP

Marcus Meissner

unread,
Jun 14, 2001, 4:23:40 PM6/14/01
to
In article <9g7pn8$7ider$1...@ID-69621.news.dfncis.de>,


Du suchst sched_yield().

Ciao, Marcus

Lukas John

unread,
Jun 15, 2001, 11:28:30 AM6/15/01
to

> Du suchst sched_yield().
>
> Ciao, Marcus

Danke,
werde ich mir mal anschauen...


Lukas

0 new messages