[1397] Re:マルチスレッドについて
投稿者:山
2009/07/19 10:35:19
>「終了指示」を含めると8回になるように思えるのですが……
タイマ表示関数に終了指示の処理がありますが、それのデバックのために
書いた部分が残っていました。このプログラムでは終了指示は出していない
ので、7回です。
終了待ちをする関数コール
> rtn[0] = スレ終了待ち(sid[0],終了待ち,10);
終了指示を出し終了を待ちをする関数コール
> rtn[0] = スレ終了待ち(sid[0],終了指示待ち,10);
出したプログラムは上のコールを使っていました。
誤解を与えるようなプログラムですみません。
>私が不思議なのは、なぜユーザプログラムの側をこのように細切れに
>呼び出さなければならないのか、ということです。ユーザプログラムが
>自ら処理を明け渡す必要がないことが、マルチスレッドの利点だと思う
>のですが。
一般的なマルチスレッドと、私が組み込みたいマルチスレッドは性格が
少し違います。でも、初期起動の中で必要なことを実行して、終了リターン
すれば、普通のスレッドと同じことが出来ます。違いは待機リターンが有り
キュー待ち状態で待機できることです。
なぜこうしたのかは、真に意味で完全な非同期協調処理をするためです。
これを説明しようとすると、とても長くなってしまいます。もしよろしけ
れば、「非同期協調処理」「非同期協調作業」「非同期分散処理」を検索
していただければ嬉しいです。いいHPでもあれば紹介するのですが、
びみょーに全部専門的で、びみょーに違うので。
簡単に言うと、真のマルチ処理(複数CPU)環境における、同期処理を
必要としないで協調してひとつの処理を実行する。ああ、言葉を長くした
だけだ。orz
私はそれを、理論的に構築しようと思っているわけではなく、今のプロ
グラミングパラダイム、この場合一番単純なC言語ライクな関数言語パラダ
イムの上で、実際的に動くものを構築しようとしている、実利主義的に
泥臭いことをやっているわけです。動けばなんでもOK、きれいな理論なん
て求めてません。^^ 的な立場で作っています。
(動けばなんでもOKだから、シートなんて取って付けた物を使うあたりが)
orz orz
その目的に必衰だったのが、今回のスレッドの仕様です。
普通のスレッドを使用しないの理由は、起動するのも遅いし、終わる
のも遅い、非同期協調作業が出来るほど軽いものじゃないです。それに、
キュー処理にはまったく対応していない。
この説明で、疑問に答えられてのかまったく持って不安です。
もしよろしければ、説明不足な点をご指摘ください。