Чтобы использовать класс и функции WorkerPool (Javascript Threads) в GWT/Gears, мне нужно написать свой код как в Java, так и в Javascript? При проверке WorkerPool - Getting Started и образце приложения WorkerPool в пакете загрузки GWT-Gears-1.1 кажется, что мне нужно. Кажется, что Java-код используется для демонстрации синхронного характера Javascript, и тот же алгоритм в Javascript используется для асинхронных вызовов.Чтобы использовать Gears WorkerPool в GWT, мне нужно написать тот же код в Java и Javascript?
Я что-то упустил? Не было ли создано GWT, чтобы вам не пришлось писать код Javascript? Почему вы не можете написать свой код WorkerThread в Java и компилировать его в Javascript?
Вот соответствующий Java-код с этого URL:
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);
}
Вот соответствующий код Javascript в worker.js (обратите внимание, как это тот же алгоритм, написанный в 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 пролить свет на это?
Спасибо!
Edit:
Кажется, в соответствии с этим http://markmail.org/message/gxipzth2jheccpha#query:+page:1+mid:sabv4llpymbavt7t+state:results мои подозрения верны. Я не уверен, что понимаю, почему это ограничение существует. Я хотел бы прочитать любое понимание этого вопроса.
Edit 2:
Это также, кажется, подтверждает это: http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/658f6665e5b09bed