Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<pthread.h>
- #include<semaphore.h>
- #include <stdlib.h>
- #define P sem_post
- #define V sem_wait
- sem_t case_vide;
- sem_t case_pleine;
- void* lire(void* data);
- void* ecrire(void* data);
- int buffer[5];
- int iDepot;
- int iExtrait;
- void* lire(void* data)
- {
- for(int i = 0; i < 10; i++)
- {
- P(&case_pleine);
- {
- printf("lu: %d ", buffer[iExtrait]);
- iExtrait ++;
- iExtrait %= 5;
- sleep(0.7);
- }
- V(&case_vide);
- }
- }
- void* ecrire(void* data)
- {
- for(int i = 0; i < 10; i++)
- {
- P(&case_vide);
- {
- printf("Ecris");
- buffer[iDepot] = iDepot;
- iDepot ++;
- iDepot %= 5;
- sleep(0.5);
- }
- V(&case_pleine);
- }
- }
- int main()
- {
- //Variables
- char a;
- iDepot = 0;
- iExtrait = 0;
- //Gestion des threads
- pthread_t thr_lire;
- pthread_t thr_ecrire;
- sem_init(&case_vide, 5, 0);
- sem_init(&case_pleine,0, 5);
- pthread_create(&thr_ecrire, NULL, ecrire, NULL);
- pthread_create(&thr_lire, NULL, lire, NULL);
- printf("%c",a);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement