https://www.electronjs.org/ru/docs/latest/tutorial/multithreading • 46 KB fetched Open original page
Многопоточность | Electron
Перейти к основному содержанию
Electron Документация API Блог Инструменты
* Electron Forge
* Electron Fiddle
Сообщество
* Управление
* Примеры
* Ресурсы
Релизы Русский
* English
* Deutsch
* Español
* Français
* 日本語
* Português
* Русский
* 中文
Поиск
* Начать
* Процессы в Electron
* Рекомендации
* Примеры
* Темный режим
* Device Access
* In-App Purchases
*
* Горячие клавиши
* Deep Links
* Desktop Launcher Actions
*
* Menus
* Многопоточность
* Нативное перемещение файла
* История навигации
* Notification (Оповещения)
* Закадровый рендеринг
* Обнаружение Online/Offline событий
* Progress Bars
* Недавние документы
*
*
* Representing Files in a BrowserWindow
*
* SpellChecker
* Web Embeds
* Taskbar Customization
*
* Window Customization
* Разработка
* Native Node Modules
* Распространение
* Тестирование и отладка
* Ссылки
* Вклад
*
* Примеры
* Многопоточность На этой странице
Многопоточность
С помощью Web Workers , есть возможность запускать JavaScript в потоках на уровне операционной системы.
Многопоточный Node.js
It is possible to use Node.js features in Electron's Web Workers, to do so the nodeIntegrationInWorker option should be set to true in webPreferences .
const win = new BrowserWindow ( {
webPreferences : {
nodeIntegrationInWorker : true
}
} )
The nodeIntegrationInWorker can be used independent of nodeIntegration , but sandbox must not be set to true .
[!NOTE] This option is not available in SharedWorker s or Service Worker s owing to incompatibilities in sandboxing policies.
Available APIs
All built-in modules of Node.js are supported in Web Workers, and asar archives can still be read with Node.js APIs. However none of Electron's built-in modules can be used in a multi-threaded environment.
Native Node.js modules
Any native Node.js module can be loaded directly in Web Workers, but it is strongly recommended not to do so. Most existing native modules have been written assuming single-threaded environment, using them in Web Workers will lead to crashes and memory corruptions.
Note that even if a native Node.js module is thread-safe it's still not safe to load it in a Web Worker because the process.dlopen function is not thread safe.
The only way to load a native module safely for now, is to make sure the app loads no native modules after the Web Workers get started.
process . dlopen = ( ) => {
throw new Error ( 'Load native module is not safe' )
}
const worker = new Worker ( 'script.js' )
Редактировать эту страницу
Назад
Горячие клавиши
Далее
Нативное перемещение файла
* Многопоточный Node.js
* Available APIs
* Native Node.js modules
Документация
* Начало работы
* Справка по API
Контрольные списки
* Характеристика
* Безопасность
Инструменты
* Electron Forge
* Electron Fiddle
Сообщество
* Управление
* Ресурсы
* Discord
* Bluesky
* X
* Mastodon
* Stack Overflow
Подробнее
* GitHub
* Open Collective
* Панель управления инфраструктурой
Авторское право OpenJS Foundation и участники проекта Electron. Все права защищены. OpenJS Foundation обладает зарегистрированными товарными знаками и использует их. Список товарных знаков OpenJS Foundation приведён в нашей Политике в отношении товарных знаков и в Списке товарных знаков . Товарные знаки™ и логотипы®, не указанные в списке товарных знаков OpenJS Foundation , являются товарными знаками™ или зарегистрированными® товарными знаками их владельцев. Их использование не подразумевает какой-либо принадлежности к ним или поддержки с их стороны. The OpenJS Foundation | Условия использования | Политика конфиденциальности | Устав | Кодекс поведения | Политика в отношении товарных знаков | Список товарных знаков | Политика использования файлов cookie
Hosting and infrastructure graciously provided by