Prozesse und Threads
Prozesse und Threads
Prozesse und Threads
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Posix Thread Beispiel – 9<br />
Endlos Thread, wird von main gestoppt<br />
SUBROUTINE test_thread2(thrnum)<br />
IMPLICIT NONE<br />
!<br />
! Endlos-Thread sitzt in ConditionWait <strong>und</strong> wird von anderen <strong>Threads</strong><br />
! via SIGNAL geweckt um dann irgendeinen Unsinn zu machen<br />
! Zusätzlich: Sperren <strong>und</strong> Freigeben einer globalen Variablen mittels<br />
! Mutex Lock <strong>und</strong> Unlock<br />
! Beenden des Endlos-<strong>Threads</strong> via PTHREAD_CANCEL in MAIN<br />
!<br />
! Verwendete Prozeduren:<br />
!<br />
! pthread_mutex_init Initialisierung der Mutexvariablen<br />
! für pthread_cond_wait<br />
! pthread_cond_wait Aufwachen des <strong>Threads</strong> mit Mutex<br />
! pthread_mutex_lock WeckMutex locken für pthread_cond_wait<br />
! pthread_mutex_unlock WeckMutex freigeben nach<br />
! pthread_cond_wait<br />
INCLUDE 'GEN_INCL:ST(P<strong>Threads</strong>)'<br />
INTEGER<br />
*4 ThrCount<br />
RECORD<br />
/pthread_mutex_t/ SlowMutex<br />
RECORD<br />
/pthread_mutex_t/ WeckMutex<br />
RECORD<br />
/pthread_mutex_t/ CountMutex<br />
RECORD<br />
/pthread_cond_t/ WeckCond<br />
RECORD<br />
/pthread_cond_t/ CountCond<br />
COMMON /COM_<strong>Threads</strong>/ SlowMutex, WeckMutex, CountMutex, WeckCond,<br />
1 CountCond, ThrCount<br />
RECORD<br />
Dienstag, 30. April<br />
2013<br />
/pthread_mutex_t/ WaitMutex<br />
Betriebssysteme <strong>und</strong> nebenläufige<br />
Anwendugen - <strong>Prozesse</strong> <strong>und</strong> <strong>Threads</strong> 45