Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Zmodyfikuj program opisany wyżej tak, aby wątki zwracały jak rezultaty swojego działania wyli-
- czone wyniki do wątku głównego, który będzie wypisywał je na ekran.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <pthread.h>
- struct number {
- int x, y;
- };
- void *add_thread_function(void *arg)
- {
- struct number *buffer = arg;
- int *pointer_buffer = (int *)malloc(sizeof(int));
- *pointer_buffer = buffer->x+buffer->y;
- pthread_exit((void *)pointer_buffer);
- }
- void *subtract_thread_function(void *arg)
- {
- struct number *buffer = arg;
- int *pointer_buffer = (int *)malloc(sizeof(int));
- *pointer_buffer = buffer->x-buffer->y;
- pthread_exit((void *)pointer_buffer);
- }
- int main(void)
- {
- pthread_t add_thread, subtract_thread;
- struct number *num;
- void *add_return_pointer, *subtract_return_pointer;
- int add_result, subtract_result;
- num->x = 5;
- num->y = 3;
- pthread_create(&add_thread, NULL, add_thread_function, (void *)num);
- pthread_create(&subtract_thread, NULL, subtract_thread_function, (void *)num);
- pthread_join(add_thread, &add_return_pointer);
- pthread_join(subtract_thread, &subtract_return_pointer);
- add_result = *((int *)add_return_pointer);
- subtract_result = *((int *)subtract_return_pointer);
- printf("Dodawanie: %d\nOdejmowanie: %d\n", add_result, subtract_result);
- return EXIT_SUCCESS;
- }
Add Comment
Please, Sign In to add comment