soutaroブログスマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。読者です読者をやめる読者になる読者になるsoutaroブログこの広告は、90日以上更新していないブログに表示しています。2006-10-16マルチスレッドクイズ前のエントリのやつ。答えは「そんなのわからない」です。OCamlのスレッドは、同時に実行されるのは一つだけです。さっきの方法が正しければ、プログラムを実行したときには、CPUの利用率は100%以下になるような気がします。まあ実際に試してみたら100%超えちゃって、ちょっと混乱したりしました。ループの中でPrintfしてるのがポイントで、あこを()だけに変えれば、100%になります。C言語のランタイムとかでは普通のpthreadのプログラムと同じになって、同時に実行されてるんじゃないかと思います。「pthreadを利用しているのでCのランタイムなどは同時に実行されるが、OCamlプログラムでは同時に実行できるスレッドは一つだけ」というのはPythonでも同じという話を聞きましたので、多分Pythonでも同じような挙動を示すんじゃないかと思います。ちなみに、プログラムの挙動からその処理系のThreadの種類を判別するにはどうすればいいかというのは、ちょっと面白いクイズだと思ったのですが、なんか難しそうです。時間を計るというのも一つの手だと思うのですが、適当にやるとマルチスレッドの方が遅くなったりとか平気でするので、よくわかんないや。Blog|ブログを報告する。