dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

semaphore による同時実行制御

2024-05-10 00:02:32 | SVG
semaphore による同時実行制御の例。 以下は new Semaphore(1) で同時実行数を1にした実行例です。 ■プログラム
import { setTimeout } from 'timers/promises';
import { Semaphore } from 'await-semaphore';

(() => {
  const s = new Semaphore(1);

  s.use(async () => {
    console.log('before wait 1');
    await setTimeout(5000);
    console.log('after wait 1');
  });

  s.use(async () => {
    console.log('before wait 2');
    await setTimeout(1000);
    console.log('after wait 2');
  });
})();
■実行結果
before wait 1
after wait 1
before wait 2
after wait 2