私は古い検査からの質問とその回答を持っていますが、私は解決策を理解していません。誰かが私にそれを説明することはできますか?これらの2つの質問(cプログラム、mutex、スレッド)の解決方法をsomoneで説明できますか?
int a = 0;
int b = 0;
pthread_mutex_t m;
void * f()
{
_________________ (Empty Line for question number 2)
a = a + 1;
pthread_mutex_lock(&m);
b = b + 1;
printf("a = %d, b = %d\n", a, b);
pthread_mutex_unlock(&m);
return NULL;
}
int main() {
pthread_t t1, t2;
pthread_mutex_init(&m, NULL);
pthread_create(&t1, NULL, &f, NULL);
pthread_create(&t2, NULL, &f, NULL);
pthread_join(t1, NULL);
pthread_join(t2, NULL);
return 0;
}
- プログラムはどのように多くの異なる印刷出力を発することができます。
は、このCのプログラムを考えると? (答えは3です)
- さまざまな印刷オプションを1に減らすために空行に追加できるコードは何ですか? (答えは
int a=0;
です)
私はこれらの回答にどのように到達する必要がありますか?
印刷オプションとは何ですか? – mch
そこに 'a'にレースの条件があります。変数 'a'は、プログラムの実行後に1または2にすることができます。そして、これは神秘的な印刷オプションと関係があると私は賭けるでしょう。 –
オペレーティングシステムのタグが実際に問題に適合していない –