並行処理、並列処理とは? season2 part1

今回はオライリーのPthreadプログラミング を読み進めていき、並行処理、並列処理の理解をその都度投稿していきます。

この記事は読み進めながらその時点で絞り出した理解を投稿していくので、間違った考えや説明不足な点が多々見られると思いますが、その際はコメントで訂正などよろしくお願いします。


といっても、自分は文字で書くのはあまり得意ではないと気づいてしまったので、ノートに書いた図を投稿します。

画像1

ここでは同期の根本的な理解をまとめました。

なぜ同期するのか?というのは、陸上に例えました。途中でバトンに変化があるというのは想像しにくいかもしれませんが、頑張ってください。

ギャルの陸上ランナーが途中でデコるかもしれない。

マッチョのランナーが途中でへし折るかもしれない。

悟空が途中で伸ばしちゃうかもしれない。

いろんな想像が膨らみますね。

それらの変化を受け継ぐには、次のランナーがバトンを待たなくてはいけません。

それについてはマルチプロセスではwaitpid()、

マルチスレッドではpthread_join()が大まかな役割を担っていて、

マルチスレッドでもっと重要になってくるのが、

mutex、条件変数、というものなのですが、まだ自分も理解してないのでこれ以上は書けません。

ではまた、次回!

この記事が気に入ったらサポートをしてみませんか?