0

グローバルカウンタを使用すると、マルチスレッドアプリケーションでmutex(所有リソース用)と条件変数奇数と偶数を1つずつオンにします。マルチスレッドアプリケーションでグローバルカウンタを使用せずに奇数と偶数をプリントすることは可能ですか?

しかし、グローバルカウンタを使用せずに同じように達成するにはどうすればよいですか?

+0

これまでに何を試みましたか?また、これはC、C++、または他の言語でですか? –

+0

グローバルカウンタを使用してpthreadをCで使用して、奇数、1つずつ印刷するプログラムを作成しました。 – nandyorama

答えて

0

しかし、グローバルカウンタを使用せずに同じように達成するにはどうすればよいですか?

なぜグローバルカウンタが必要ですか?他のスレッドを待ち、信号を送る方法はすべてです。

void odd(void *ignore) 
{ 
    for (int j = 1; ; j += 1) { 
    printf("%d\n", j); 
    // signal other thread 
    // wait for it to signal me 
    } 
} 

void even(void *ignore) 
{ 
    for (int j = 2; ; j += 2) { 
    // wait for other thread to signal me 
    printf("%d\n", j); 
    // signal other thread 
    } 
} 
+0

グローバルカウンターを使わなくても実現できます。ありがとう – nandyorama

関連する問題