先日の RHG 読書会で、牧さんがやっているという http://sourceforge.net/projects/jsthread/ の紹介があった。 JavaScript でプリエンプティブなスレッドをライブラリレベルで実装した、という話。 JavaScript というのは、ユーザレベルからはスレッドが一本しかなくて、処理の切り替えというのができない。だから、タイムアウト呼出や処理の終了のイベントを待って終了処理をする、ってなことを書かないとまともなプログラムを書けない。でもこれは大変だ。 この Concurrent.Thread を使って関数を渡すと、そのプログラムが呼び出し元と並列に走る。ように見える。なのであまり気にせずループみたいなものを回す関数を使ってもブラウザが停止したりしない。 まだドキュメントとかはないのだけれど、昨日ちらっと見たサンプルコードから、いいかげんにデッチ上