Atomic (AT03)
1: // Worker thread (worker.js)
2: import { parentPort } from 'worker_threads';
3:
4: // Listen for messages from the main thread
5: parentPort.on('message', (event) => {
6: const sab = event.sab; // Extract the SharedArrayBuffer from the message
7: const i32 = new Int32Array(sab);
8:
9: console.log('Worker received SharedArrayBuffer');
10:
11: // Simulate some work with a timeout
12: setTimeout(() => {
13: Atomics.store(i32, 0, 42); // Set the shared value to 42
14: Atomics.notify(i32, 0, 1); // Notify the main thread (wake up max. 1 waiter)
15: console.log('Worker sends message to main thread');
16: parentPort.postMessage('Worker has finished.');
17: }, 1000);
18: });
Atomics.waitAsync() Example Worked thread
Atomic context:
ES6 context:
- (2024) Notes about JS Closures. #ES6
- (2024) Notes about Javascript asynchronous programming. #ES6
- (2022) Modern Javascript books #ES6 #Doc
- (2021) JS learning start point #ES6
- (2021) Maximilian Schwarzmüller Javascript lecture #ES6
- (2021) Javascript interview question from Happy Rawat #ES6
- (2021) Javascript tests #ES6
- (2016) New unique features of Javascript (updated). #ES6
Comments (
)

Link to this page:
http://www.vb-net.com/JavascriptES6/AT03.htm
|