Slide 36
Slide 36 text
36
// main thread
const array = new Float32Array(1000 ** 100000).fill(Math.random())
const worker = new Worker(new URL('./workerScript.ts', import.meta.url))
worker.onmessage = e => {
if (e.data === 'ready') {
console.log('worker is ready')
worker.postMessage(array)
console.log(array)
// transferable!
worker.postMessage(array, [array.buffer])
console.log(array)
} else {
setSum(e.data)
}
}
// worker thread
postMessage('ready')
onmessage = function (event) {
const data = event.data
const result = data.reduce((acc: number, item: number) => acc + item, 0)
postMessage(result)
}
export {}