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 – 6<br />
test_Thread1,arbeitet periodisch, terminiert selbst<br />
SUBROUTINE test_thread1(thrnum)<br />
IMPLICIT NONE<br />
!<br />
! Thread wird mehrfach (Anzahl= anzworkers), konkurrierend in MAIN erzeugt<br />
! <strong>und</strong> mittels Broadcast geweckt.<br />
!<br />
! Verwendete Prozeduren:<br />
!<br />
! pthread_cond_wait Warten auf Ereignis <strong>und</strong> aufwachen des <strong>Threads</strong> mit Mutex<br />
! pthread_cond_timedwait Warten auf Ereignis mit Timeout (verwendbar als Timer bei <strong>Threads</strong>)<br />
! pthread_get_expiration_np Bestimmung der Ablaufzeit des Timers indem zur Systemzeit ein<br />
! Delta in Sek<strong>und</strong>en addiert wird<br />
! pthread_mutex_lock WeckMutex locken für pthreadcond_wait<br />
!<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 />
CHARACTER * 8 CTime<br />
INTEGER *4 a , thrnum, Error, INDX /0/, IStatus<br />
RECORD /PThread_TimeSpec_T/ WaitTime, ResWaitTime<br />
Dienstag, 30. April<br />
2013<br />
Betriebssysteme <strong>und</strong> nebenläufige<br />
Anwendugen - <strong>Prozesse</strong> <strong>und</strong> <strong>Threads</strong> 42