Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "unistd.h"
- #include "stdlib.h"
- #include "pthread.h"
- #define AV 3
- pthread_mutex_t lock_pista = PTHREAD_MUTEX_INITIALIZER;
- void * aviao(void * arg) {
- int i = *((int *) arg);
- while(1) {
- printf("%d: voando e vai pousar\n",i);
- sleep(10);
- pthread_mutex_lock(&lock_pista);
- printf("%d: pousando\n",i);
- sleep(2);
- printf("%d: pousou, liberando a pista\n",i);
- pthread_mutex_unlock(&lock_pista);
- sleep(5);
- printf("%d: querendo decolar\n",i);
- sleep(10);
- pthread_mutex_lock(&lock_pista);
- printf("%d: decolando\n",i);
- sleep(2);
- printf("%d: decolou, pista liberada\n",i);
- pthread_mutex_unlock(&lock_pista);
- sleep(5);
- }
- }
- int main() {
- pthread_t a[AV];
- int i,*id;
- for (i=0;i<AV;i++) {
- id = (int *) malloc(sizeof(int));
- *id = i;
- pthread_create(&a[i], NULL, aviao, &i);
- }
- pthread_join(a[0], NULL);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement