Операционные системы (Синхронизация) - PullRequest
0 голосов
/ 10 декабря 2018
int i = 0;
...
void * A (void * param){
   ...
   i *= 3;
   ...
}
void * B (void * param){
   ...
   i--;
   ...
}
main(){
   pthread_t ta, tb
   ...
   pthread_create(&ta, 0, A, 0);
   pthread_create(&tb, 0, B, 0);
   ...
   printf("%d\n", i);
}

Что можно добавить в «...», чтобы обеспечить максимальное значение выходного значения?

Я полагаю, что решение связано с тем, чтобы B никогда не выполнялся с использованиеммьютекс, но я не уверен

...