- #include<sys/types.h>
- #include<stdio.h>
- #include<sys/stat.h>
- #include<pthread.h>
- #include<stdlib.h>
- struct{
- pthread_mutex_t mutex;
- char buff[100][100];
- int nput;
- int nval;
- }shared={PTHREAD_MUTEX_INITIALIZER};
- void *readImage(int i);
- int main(void){
- int i;
- pthread_t tache[3];
- strcat(shared.buff[0],"***************************");
- strcat(shared.buff[1],"** simuler une image *****");
- strcat(shared.buff[2],"***************************");
- pthread_setconcurrency(3);
- for (i = 0; i < 3; i++) {
- pthread_create(&tache[i], NULL, readImage, i);
- }
- for (i = 0; i < 3; i++) {
- pthread_join(tache[i], NULL);
- }
- exit (0) ;
- }
- void *
- readImage(int i){
- for ( ; ; ) {
- if (shared.nput >i) {
- pthread_mutex_unlock(&shared.mutex);
- return(NULL);
- }
- //verifier si c'est par l'order
- if (shared.nput==i) {
- pthread_mutex_lock(&shared.mutex);
- printf("%s/n", shared.buff[i]);
- sleep(2);
- shared.nput++;
- pthread_mutex_unlock(&shared.mutex);
- }
- }
- }