mmehrere threads zu starten, satt mehrere prozesse

  • bie absturz vom eines Threads kann kollateralschaden an andere kindprozesse entstehen.
  • gemeinsame Variablen
  • Wenn ein Prozess gestartet wird ist er auch selbst ein Thread (Main-Thread)
  • Synchroniesierungsmechanismen
 
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
#include<unistd.h>
#include<stdint.h>
 
  
 
void* threadFunct(void *arg){
 
    int sleeptime = (int)(intptr_t)arg;
    printf("Hallo. Ich bin Thread %ld.\n",pthread_self());
    fflush(stdout);
    printf("Sleeptime: %d\n", sleeptime);
    fflush(stdout);
    sleep(sleeptime); //schlafe 2000000 us
    pthread_exit(NULL);
 
}
 
int main(){
 
    pthread_t thread[3];
    for(int i = 0; i <= 2; i++){
        printf("Thread erzeugt, warte auf Beendigung...\n");
        pthread_create(&thread[i],NULL,&threadFunct,(void *)(intptr_t)(i+10));
    }
 
  
 
    for(int i = 0; i <= 2; i++){
        pthread_join(thread[i],NULL);
    }
 
  
  
 
    printf("Thread beendet. Beende Prozess.\n");
 
    return 0;
 
}