GWT/Gears で WorkerPool (Javascript Threads) クラスと機能を使用するには、Java と Javascript の両方でコードを記述する必要がありますか? WorkerPool - Getting Startedと GWT-Gears-1.1 ダウンロード パッケージ内のサンプル WorkerPool アプリケーションを調べると、それが必要なようです。Java コードは Javascript の同期の性質を示すために使用され、非同期呼び出しには Javascript の同じアルゴリズムが使用されているようです。
何か不足していますか?GWT は Javascript コードを書かなくて済むように作られたのではないですか? WorkerThread コードを Java で記述し、コンパイラに Javascript にコンパイルさせることができないのはなぜですか?
その URL からの関連する Java コードは次のとおりです。
public void syncWorker(String message) {
// Busy wait for 5 seconds
long end = System.currentTimeMillis() + 5000;
while (true) {
int busyCounter = 1000;
String busyVar;
while (busyCounter-- > 0) {
busyVar = "garbage" + busyCounter;
}
long now = System.currentTimeMillis();
if (now > end) {
break;
}
}
logMessage("Approved: " + message);
}
関連する worker.js の Javascript コードは次のとおりです (Javascript で記述されたアルゴリズムと同じであることに注意してください)。
function doWork(message) {
// Busy wait for 5 seconds
var start = new Date();
while (true) {
var busyCounter = 10000;
var busyVar;
while (busyCounter-- > 0) {
busyVar = "garbage" + busyCounter;
}
var now = new Date();
if (now.getTime() - start.getTime() > 5000) {
break;
}
}
return "Approved: " + message;
};
Java での呼び出しは次のとおりです。
wp = Factory.getInstance().createWorkerPool();
wp.setMessageHandler(GearsWorkerPoolTutorial.this);
workerId = wp.createWorkerFromUrl("worker.js");
GWT と Gears の経験がある人は、これについていくらか光を当てることができますか?
ありがとう!
編集:
このhttp://markmail.org/message/gxipzth2jheccpha#query:+page:1+mid:sabv4llpymbavt7t+state:resultsによると、私の疑いは正しいようです。この制限が存在する理由を理解しているかどうかはわかりません。この問題に関する洞察をぜひお読みください。
編集2:
これもそれを確認しているようです:http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/658f6665e5b09bed