09.03.2014 Aufrufe

Konzepte und funktionaler Vergleich von Thread-Systemen

Konzepte und funktionaler Vergleich von Thread-Systemen

Konzepte und funktionaler Vergleich von Thread-Systemen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Thread</strong>management<br />

self()<br />

create()<br />

exit()<br />

join()<br />

detach()<br />

cancel()<br />

Abbruchmaskierung<br />

Abbruchvorsorge<br />

Synchronisation<br />

Mutexes<br />

mutex_init()<br />

mutex_destroy()<br />

mutex_lock()<br />

mutex_unlock()<br />

Bedingungsvariable<br />

cond_init()<br />

cond_destroy()<br />

cond_wait()<br />

cond_signal()<br />

cond_broadcast()<br />

pthread_self()<br />

pthread_create()<br />

pthread_exit()<br />

pthread_join()<br />

pthread_detach()oder mittels Attribut bei pthread_create()<br />

pthread_cancel()<br />

pthread_setcancelstate(), pthread_setcanceltype() <strong>und</strong><br />

pthread_testcancel()<br />

pthread_cleanup_push() <strong>und</strong> pthread_cleanup_pop()<br />

Nicht-rekursiv<br />

pthread_mutex_init()<br />

pthread_mutex_destroy()<br />

pthread_mutex_lock() <strong>und</strong> pthread_mutex_trylock()<br />

pthread_mutex_unlock()<br />

pthread_cond_init()<br />

pthread_cond_destroy()<br />

pthread_cond_wait() <strong>und</strong> pthread_cond_timedwait()<br />

pthread_cond_signal()<br />

pthread_cond_broadcast()<br />

Scheduling<br />

getpriority()<br />

setpriority()<br />

pthread_getschedparam()oder mittels Attribut bei pthread_create()<br />

pthread_setschedparam()oder mittels Attribut bei pthread_create()<br />

4.2.2 <strong>Thread</strong>s in Java<br />

Die Informationen sind dem Java-Tutorial des JDK (Java Development Kit) entnommen.<br />

<strong>Thread</strong>management<br />

self()<br />

create()<br />

exit()<br />

join()<br />

detach()<br />

cancel()<br />

Abbruchmaskierung<br />

Abbruchvorsorge<br />

current<strong>Thread</strong>()<br />

Neue Instanz einer Subklasse <strong>von</strong> <strong>Thread</strong> anlegen oder eine eigene Klasse als<br />

runnable implementieren, Methode start() aufrufen. Der so neu erzeugte<br />

<strong>Thread</strong> führt die Methode run() aus.<br />

stop()<br />

join()<br />

Wegen Garbage Collection nicht nötig<br />

stop()(auffangbar) oder destroy() (definitiv)<br />

Nicht vorhanden<br />

Mittels try {...} finally {...} oder<br />

try {...} catch(<strong>Thread</strong>Death var) {...}<br />

Synchronisation<br />

Mutexes<br />

Rekursiv<br />

mutex_init() Nicht vorhanden/nötig<br />

mutex_destroy() Nicht vorhanden/nötig<br />

mutex_lock() Eintritt in synchronized {...}<br />

mutex_unlock() Austritt aus synchronized {...}<br />

Bedingungsvariable Nur eine pro Mutex<br />

cond_init() Nicht vorhanden/nötig<br />

cond_destroy() Nicht vorhanden/nötig<br />

cond_wait() wait(), Timeout-Angabe möglich<br />

cond_signal() notify()<br />

cond_broadcast() notifyAll()<br />

Scheduling<br />

getpriority()<br />

setpriority()<br />

getPriority()<br />

setPriority()<br />

19

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!