「マルチスレッド」の編集履歴(バックアップ)一覧はこちら
「マルチスレッド」(2012/04/30 (月) 00:31:41) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
-[[pthred_create]]
-[[pthred_create]]
----
[[プログラマ・サラリマン生活]]にはいくつかの危機があり、それらは、折をみて、わたしに襲いかかってきます。
その中の一つが……マルチスレッド!
なんとなく、スレッドというものが、マルチなんだろうな、とは分かります。
問題は、マルチスレッドが一体何で、ナゼそれを使うのか、使うとどんないいことがあるのか、
全然見当がつかないというところですね!(いまも見当がついてないよ!)
いいところ
+mainがある関数Aを実行中に、他の動作を並行して行える(たとえば、Aと関係のない関数Bを呼ぶなど)
普通、ある関数を実行している間は、その関数が[[return]]するまで、mainはポツンと待っているだけです。
すると、次のようなアプリケーションを作る場合に、問題が起きます。
-CUIベースのプログラムです
-五秒に1回、コマンドプロンプトに「Qで終了します」と表示します(処理A)
-ユーザーがコマンドプロンプトに入力した文字を受け付け、「Q」と「Enter」が入力されたら終了します(処理B)
そんなアホなプログラム誰が作るの……というのはさておき、実装にもよりますが、仮に処理Bをscanfで実装した場合、
処理Aはどうやっても実現することはできません(たぶん)。
でもマルチスレッドを使えばできます。やったね!