(ES6) ES6 (2016)

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:



Comments ( )
<00>  <01>  <02>  <03>  <04>  <05>  <06>  <07>  <08>  <09>  <10>  <11>  <12>  <13>  <14>  <15>  <16>  <17>  <18>  <19>  <20>  <21>  <22>  <23>  <24>  <25
Link to this page: http://www.vb-net.com/JavascriptES6/AT03.htm
<TAGS>  <ARTICLES>  <FRONT>  <CORE>  <MVC>  <ASP>  <NET>  <DATA>  <TASK>  <XML>  <KIOSK>  <NOTES>  <SQL>  <LINUX>  <MONO>  <FREEWARE>  <DOCS> <TRAVELS> <FLOWERS> <RESUME> < THANKS ME>