Files
PROG-CONCU/ANALE-1/EXO4/thread.c
2025-08-16 07:34:54 +00:00

45 lines
922 B
C

#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
struct structArg {
pthread_mutex_t* mutex;
};
void* func1(void* arg){
struct structArg* args = arg;
pthread_mutex_lock(args->mutex);
for(int i =1;i<1500;i++){
printf("OK - 1 - %d\n",i);
}
pthread_mutex_unlock(args->mutex);
pthread_exit(NULL);
}
void* func2(void* arg){
struct structArg* args = arg;
pthread_mutex_lock(args->mutex);
for(int i =1;i<1000;i++){
printf("OK - 2 - %d\n",i);
}
pthread_mutex_unlock(args->mutex);
pthread_exit(NULL);
}
int main(void){
pthread_t p1,p2;
pthread_mutex_t mutex;
pthread_mutex_init(&mutex,NULL);
struct structArg args;
args.mutex = &mutex;
pthread_create(&p1,NULL,func1,&args);
pthread_create(&p2,NULL,func2,&args);
pthread_join(p1,NULL);
pthread_join(p2,NULL);
pthread_mutex_destroy(&mutex);
return 0;
}