Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <pthread.h>
- #include <time.h>
- #include <math.h>
- #define N 3
- #define K 3
- /* run this program using the console pauser or add your own getch, system("pause") or input loop */
- pthread_mutex_t mutex;
- int mt[K][N];
- void * trfun(void *arg){
- int pers= (intptr_t) arg;
- printf("Persona numero: %d \n", pers+1);
- pthread_mutex_lock(&mutex);
- int i = 0;
- int j = 0;
- int z = 0;
- int m[K];
- for(i=0; i<K; i++) {
- mt[pers][i] = rand()%10;
- }
- for(j=0; j<K; j++) {
- for(i=0;i<pers;i++){
- m[z] = m[z]+mt[j][i];
- }
- }
- for(i=0; i<K; i++) {
- m[z] /= pers+1;
- }
- z++;
- sleep(3);
- pthread_mutex_unlock(&mutex);
- printf("media parziale dopo compilazione utente %d\n", pers+1);
- for(i=0; i<K; i++){
- printf("%d\n", m[i]);
- }
- printf("\n");
- pthread_exit(0);
- return NULL;
- }
- int main() {
- pthread_t tid[N];
- int i = 0;
- pthread_mutex_init(&mutex, NULL);
- for(i=0; i<N;i++)
- {
- pthread_create(&tid[i], NULL , trfun , (void *)(intptr_t)i);
- }
- for(i=0; i<N;i++)
- {
- pthread_join(tid[i], NULL);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement