diff --git a/ANALE-1/EXO3/SUJET/a.out b/ANALE-1/EXO3/SUJET/a.out new file mode 100755 index 0000000..5a7c38c Binary files /dev/null and b/ANALE-1/EXO3/SUJET/a.out differ diff --git a/ANALE-1/EXO3/SUJET/pipeline.c b/ANALE-1/EXO3/SUJET/pipeline.c new file mode 100644 index 0000000..e69de29 diff --git a/ANALE-1/EXO4/Thread b/ANALE-1/EXO4/Thread new file mode 100755 index 0000000..030a1f9 Binary files /dev/null and b/ANALE-1/EXO4/Thread differ diff --git a/ANALE-1/EXO4/thread.c b/ANALE-1/EXO4/thread.c new file mode 100644 index 0000000..da75873 --- /dev/null +++ b/ANALE-1/EXO4/thread.c @@ -0,0 +1,45 @@ +#include +#include +#include + +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; +} \ No newline at end of file