javascript - Hur man delar kontext mellan arbets trådar


Jag skulle vilja skapa en worker-tråd i en node.js-app och skicka den aktuella kontexten till den nya tråden, så att jag skulle kunna komma åt mina variabler och funktioner inom den nya tråden. Finns det ett bibliotek som stödjer det? Och om inte, kan jag åtminstone skicka en anonym funktion mellan dem?

Svar #1

Det finns inget sätt att dela ett sammanhang med en arbetstråd. Detta är inte "en ideologi från Node.js-teamet", utan det är en begränsning i JavaScript-språket, som inte tillåter samtidighet (såsom samtidig åtkomst till objekt från en arbetstråd).

Det enda undantaget är att du kan dela numeriska data mellan flera trådar genom att använda en SharedArrayBuffer.

Förutom det är sättet att skicka data till eller ta emot det från en arbetstråd att använda postMessage. Se även Nodes fullständiga dokumentation för arbetstrådar.

För fullständighetens skull: det finns ett tidigt förslag på att lägga till en ny typ av objekt som kan delas mellan trådar i JavaScript. Som med alla förslag i tidigt skede finns det ingen garanti för att det överhuvudtaget kommer att slutföras eller hur lång tid det kan ta, men det indikerar att det finns ett visst intresse inom detta område.