マルチスレッドプログラミング相談室 その2
■ このスレッドは過去ログ倉庫に格納されています
0563デフォルトの名無しさん
NGNGlinux 上で pthread を使ったプログラムをしてみたくて、
http://www-6.ibm.com/jp/developerworks/linux/001222/j_posix2-index.html
を見ながら試してたんだけど、その中の thread3.c が思った動作をしてくれません。
o..o..o.o..o..o.o.o.o.o..o..o..o.ooooooo のような結果を期待したのに、
....................oooooooooooooooooooo になってしまいます。
thread_function()中の sleep(1); を pthread_mutex_unlock(&mymutex); の下に
持って来ると期待した結果になります。
以上は、カーネル2.6 ですが、スケジューラの違いではとコメントがあったので
カーネル2.4 も試してみると、sleep の位置に関係なく期待どおりの動作でした。
カーネル2.6 での動作に違和感があるんだけど、なぜこんな動作になるんでしょう?
■ このスレッドは過去ログ倉庫に格納されています