Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <pthread.h>
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- void* myFunction(void* tid) {
- int id = *(int*) tid;
- free(tid);
- int* iters = malloc(sizeof(int));
- *iters = rand() % 10001;
- for (int i = 1; i <= *iters; i++) {
- printf("Watek %d, iteracja %d\n", id + 1, i);
- }
- pthread_exit(iters);
- }
- int main() {
- srand(time(NULL));
- int threadsNumber = 10;
- pthread_t* threads = calloc(threadsNumber, sizeof(pthread_t));
- int** return_vals = calloc(threadsNumber, sizeof(int*));
- for (int i = 0; i < threadsNumber; i++) {
- int* temp = malloc(sizeof(int));
- *temp = i;
- pthread_create(&threads[i], NULL, myFunction, temp);
- }
- for (int i = 0; i < threadsNumber; i++) {
- pthread_join(threads[i], (void**) (return_vals + i));
- }
- free(threads);
- long sum = 0;
- for (int i = 0; i < threadsNumber; i++) {
- sum += *return_vals[i];
- }
- free(return_vals);
- printf("Liczba iteracji: %ld\n", sum);
- }
Advertisement
Add Comment
Please, Sign In to add comment