Skip to main content
On this page

Многопоточность

Encodexx позволяет вам удобно работать с SharedArrayBuffer и Atomics для создания многопоточных приложений. Тут представлен базовый пример создания очереди задач.

Опишите схему для задачи:

schema.js
import { Serializer, t } from "encodexx";
export const TaskSchema = new Serializer([
{
id: t.str,
name: t.str,
createdAt: t.optional(t.date),
payload: t.optional(t.str),
},
]);

Далее используем SharedArrayBuffer и Atomics для создания очереди задач:

Запустим код:

bash
node main.js
Worker 1 взял в работу задачу Task 1
Worker 2 взял в работу задачу Task 2
Worker 1 завершил задачу Task 1
Worker 1 взял в работу задачу Task 3
Worker 2 завершил задачу Task 2
Worker 2 взял в работу задачу Task 4
Worker 1 завершил задачу Task 3
Worker 1 взял в работу задачу Task 5
Worker 2 завершил задачу Task 4
Worker 2 - задач больше нет
Worker 1 завершил задачу Task 5
Worker 1 - задач больше нет