[1396] Re:マルチスレッドについて
投稿者:(ぱ)こと管理人
2009/07/18 23:59:26
まず訂正です。
>>その「タイマ表示」関数は、引数のqidを順に
>>変えながら、3回呼び出されているように見えますが……(そして毎回、自ら
>>returnしている)
3回ではないですね。指定回数分だけqidが「タイマ」で呼び出されるのだろう、
ということは前回投稿時も認識していたはずですが、書き損じました。
>例えば、6回実行のスレは、初期1回とタイマー6回で、合計7回実行
>しています。
「終了指示」を含めると8回になるように思えるのですが……
それはさておき。
私が不思議なのは、なぜユーザプログラムの側をこのように細切れに呼び出さなければ
ならないのか、ということです。ユーザプログラムが自ら処理を明け渡す必要が
ないことが、マルチスレッドの利点だと思うのですが。
確認ですが、「スレ開始」(#defineをはがした実体はthread_start)は、山さんの
言語自体が提供しているシステム関数的なものですよね?
そして、「タイマ表示」は、ユーザプログラマが作成することを想定したものですよね?
マルチスレッドというのなら、ユーザのプログラムがreturnすることで処理を
手放さなくても、別のスレッドは動くわけですから、こんなふうに細切れに
呼び出さなくてもよいと思うのですが。この形式だと、ユーザプログラムは、
毎回カウンタを見て処理を切り替える必要があります。
固定個のスレッドプールを持っているようなので、それを使い切った場合を想定して
いるのでしょうか? うーん。