Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef struct {
- int n, i, j, counter;
- double percent;
- int **t1, **t2, **res;
- pthread_t *threads;
- }tk;
- int n2 = t->n * t->n;
- for(int i = 0; i < n2; i++) {
- pthread_create(&(t->threads[i]), NULL, solve, (void *) t);
- }
- for(int i = 0; i < n2; i++) {
- pthread_join(t->threads[i], NULL);
- //it only prints the end result (100%) n2 times
- //printf("%f%%n", t->percent);
- }
- void *solve(void *ptr) {
- pthread_mutex_lock(&mutex);
- tk *t;
- t = (tk*) ptr;
- int sum = 0;
- if(t->j == t->n) {
- t->i++;
- t->j = 0;
- }
- for(int k = 0; k < t->n; k++) {
- sum = sum + t->t1[t->i][k] * t->t2[k][t->j];
- }
- t->res[t->i][t->j] = sum;
- t->j++;
- t->counter++;
- t->percent = (t->counter * 100) / (t->n * t->n);
- pthread_mutex_unlock(&mutex);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement