concurrent

開発を予定している InfServer(改) ほか, それ以外でも応答性能を上げようと考えると, concurrent (並列)処理が必要になったりする。
Javaではもともと言語的にソレをサポートしているので Rhinoでもソレなりに簡単なんだけど, 使いこなすためには中途半端だったり。

spawn(function () {})                // シェルを使って thread作成と開始
new Thread(function () {}).start()   // Javaとしての thread作成と開始
  • で, synchronized (同期化)。コレは関数単位でのブツがシェル(http://www.mozilla-japan.org/rhino/shell.html) でサポートされている。複数の threadがあるとき, 同時に呼び出されないような仕組み。
  • だけど, wait-notifyがなかったりする。コレは, 同期化の最中に事象を待ったり通知したりするもの。コレもシェルのサポートがあれば, とか思うけど, 無いものは仕方がない (J2SE 1.5? (JDK 5)以降なら大丈夫かもだけど)。そんな訳で Overview of package util.concurrent Release 1.3.4.の登場。ジツは最初の InfServerで簡易版を用意してたんだけど, やっぱり method名とか合わせた方がよいだろーってことで探してみた。