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永远不会通过使用互斥锁执行有关,但我不确定