Untitled
Never
#include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <string.h> #include <unistd.h> #include <time.h> typedef struct { int w_kolejce; int miasto; // int kierunek; }Samochod; Samochod *tab_samochody; int n; pthread_mutex_t mutex_globalny = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t mutex_most = PTHREAD_MUTEX_INITIALIZER; time_t t; int w_miescie_a = 0; int w_miescie_b = 0; int w_kolejce_a = 0; int w_kolejce_b = 0; int na_moscie = -1; void *miasto(void *_nr); void wypisz(); int main(int argc, char **argv) { int iret1; sscanf(argv[1], "%d", &n); pthread_t threads[n]; srand(time(&t)); tab_samochody = calloc(n, sizeof(Samochod)); for(int i = 0; i < n; i++){ tab_samochody[i].miasto = (i % 2); // W JAKIM MIESCIE JEST DANY SAMOCHOD tab_samochody[i].w_kolejce = 1; // CZY ZNAJDUJE SIE W KOLEJCE // tab_samochody[i].kierunek = (i + 1) % 2; // W JAKIM KIERUNKU ZMIERZA SAMOCHOD } for(int i = 0; i < n; i++){ if(tab_samochody[i].miasto == 0) if(tab_samochody[i].w_kolejce == 0){ w_miescie_a += 1; } else{ w_kolejce_a += 1; } else if(tab_samochody[i].miasto == 1){ if(tab_samochody[i].w_kolejce == 0){ w_miescie_b += 1; } else{ w_kolejce_b += 1; } } } int tab_pom[n]; for(int i = 0; i < n; i++){ tab_pom[i] = i; iret1 = pthread_create( &threads[i], NULL, miasto, &tab_pom[i]); if(iret1) { fprintf(stderr,"Error - pthread_create() return code: %d\n", iret1); exit(EXIT_FAILURE); } } for(int i = 0; i < n; i++){ pthread_join( threads[i], NULL); } exit(0); } void wypisz(){ if(na_moscie != -1){ if(tab_samochody[na_moscie].miasto == 0){ printf("A-%d %d>>> [>> %d >>] <<<%d %d-B \n", w_miescie_a, w_kolejce_a, (na_moscie + 1), w_kolejce_b, w_miescie_b); } else{ printf("A-%d %d>>> [<< %d <<] <<<%d %d-B \n", w_miescie_a, w_kolejce_a, (na_moscie + 1), w_kolejce_b, w_miescie_b); } } else{ printf("A-%d %d>>> [ # ] <<<%d %d-B \n", w_miescie_a, w_kolejce_a, w_kolejce_b, w_miescie_b); } } void *miasto(void *_nr){ while(1){ pthread_mutex_lock(&mutex_most); pthread_mutex_lock(&mutex_globalny); int nr = *(int*)_nr; na_moscie = nr; if(tab_samochody[nr].miasto == 0){ w_kolejce_a -= 1; } else{ w_kolejce_b -= 1; } wypisz(); // WYPISYWANIE pthread_mutex_unlock(&mutex_globalny); usleep(500000 + (rand() % 1000000)); pthread_mutex_unlock(&mutex_most); pthread_mutex_lock(&mutex_globalny); na_moscie = -1; if(tab_samochody[nr].miasto == 0){ w_miescie_b += 1; tab_samochody[nr].miasto = 1; } else{ w_miescie_a += 1; tab_samochody[nr].miasto = 0; } wypisz(); // WYPISYWANIE pthread_mutex_unlock(&mutex_globalny); usleep(2000000 + (rand() % 3000000)); pthread_mutex_lock(&mutex_globalny); if(tab_samochody[nr].miasto == 0){ w_miescie_a -= 1; w_kolejce_a += 1; } else{ w_miescie_b -= 1; w_kolejce_b += 1; } wypisz(); // WYPISYWANIE pthread_mutex_unlock(&mutex_globalny); } }
Raw Text
-
https://www.facebook.com/ProDentinUSA/
2 min ago
-
застряла во время уборки в позе догги. Думает, что я вытащу ее, но я сначала ей втащу 🤫
4 min ago
-
Untitled
7 min ago
-
Adult Telegram Channels
20 min ago
-
The Ugly Truth About FITSPRESSO
29 min ago
-
Nothing pushes the blonde and brunette milfs with fake boobs over the edge like Outdoor group sex
34 min ago
-
https://www.facebook.com/MakersCBDGummies/
35 min ago
-
https://www.facebook.com/TheSlimGuard/
35 min ago
-
Sexy hot mature MILF Mrs. Claus try's anal for the first time and gets put on The Naughty List
1 hour ago
-
iaaee
1 hour ago