Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <pthread.h>
- pthread_mutex_t mutex;
- void* inkrementacja(void* arg_wsk)
- {
- int* zmienna = (int *) arg_wsk;
- for(int i = 0; i < 100000; i++)
- {
- pthread_mutex_lock(&mutex);
- *zmienna+=1;
- printf("I: %d\n", *zmienna);
- pthread_mutex_unlock(&mutex);
- }
- return NULL;
- }
- void* dekrementacja(void* arg_wsk)
- {
- int* zmienna = (int *) arg_wsk;
- for(int i = 0; i < 100000; i++)
- {
- pthread_mutex_lock(&mutex);
- *zmienna-=1;
- printf("D: %d\n", *zmienna);
- pthread_mutex_unlock(&mutex);
- }
- return NULL;
- }
- int main()
- {
- pthread_t tid1, tid2;
- if (pthread_mutex_init(&mutex, NULL) != 0)
- {
- printf("\n mutex init failed\n");
- return 1;
- }
- int zmienna = 0;
- pthread_create(&tid1, NULL, &dekrementacja, &zmienna);
- pthread_create(&tid2, NULL, &inkrementacja, &zmienna);
- pthread_join(tid1, NULL);
- pthread_join(tid2, NULL);
- pthread_mutex_destroy(&mutex);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement