マルチスレッド


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。



プログラマ・サラリマン生活にはいくつかの危機があり、それらは、折をみて、わたしに襲いかかってきます。
その中の一つが……マルチスレッド!

なんとなく、スレッドというものが、マルチなんだろうな、とは分かります。
問題は、マルチスレッドが一体何で、ナゼそれを使うのか、使うとどんないいことがあるのか、
全然見当がつかないというところですね!(いまも見当がついてないよ!)

いいところ
  1. mainがある関数Aを実行中に、他の動作を並行して行える(たとえば、Aと関係のない関数Bを呼ぶなど)
  普通、ある関数を実行している間は、その関数がreturnするまで、mainはポツンと待っているだけです。
  すると、次のようなアプリケーションを作る場合に、問題が起きます。
   -CUIベースのプログラムです
   -五秒に1回、コマンドプロンプトに「Qで終了します」と表示します(処理A)
   -ユーザーがコマンドプロンプトに入力した文字を受け付け、「Q」と「Enter」が入力されたら終了します(処理B)
  そんなアホなプログラム誰が作るの……というのはさておき、実装にもよりますが、仮に処理Bをscanfで実装した場合、
  処理Aはどうやっても実現することはできません(たぶん)。
  でもマルチスレッドを使えばできます。やったね!