Austausch von Variablen zwischen web-worker? [Globale Variablen?]

Ist es eine Möglichkeit für mich zu share eine variable zwischen zwei web-worker? (Web-worker sind im Grunde threads in Javascript)

In Sprachen wie c# Sie haben:

public static string message = "";
static void Main()
{
 message = "asdf";
 new Thread(mythread).Run();
}
public static void mythread()
{
 Console.WriteLine(message); //outputs "asdf"
}

Ich weiß, das ist ein schlechtes Beispiel, aber in meiner Javascript-Anwendung, ich habe einen thread tun, schwere Berechnungen, die sich auf mehrere threads [da habe ich einen großen Teil der Daten in form eines Arrays. Alle Elemente des Arrays sind unabhängig von einander. In anderen Worten, meine worker-threads müssen nicht zu kümmern, sperren oder etwas ähnliches]

Habe ich gefunden, nur so "teilen" sich eine variable zwischen zwei threads wäre eine "Getter/setter" [via prototyping] und dann mit postMessage/onmessage... obwohl dies scheint wirklich ineffizient [vor allem mit Objekten, die ich habe zu verwenden JSON für AFAIK]

LocalStorage - /Datenbank wurde aus der HTML5-Spezifikation, da kann es vorkommen, deadlocks, so dass eine option nicht [leider]...

Die andere Möglichkeit, die ich gefunden habe, war der Einsatz von PHP, um einen getVariable.php und setVariable.php Seiten, die Verwendung von localstorage zum speichern von int-Werten/strings... wieder einmal, Objekte [was beinhaltet arrays/null] umgewandelt werden müssen JSON... und dann später, JSON.parse()'d....

Soweit ich weiß, ist Javascript-worker-threads sind vollkommen isoliert von der Hauptseite-thread [was ist der Grund, warum Javascript-worker-threads keinen Zugriff auf DOM-Elemente

Obwohl postMessage funktioniert, ist es langsam.

InformationsquelleAutor Warty | 2010-02-14
Schreibe einen Kommentar