进程和线程

创建时间:2025-05-08 13:55
长度:1242
浏览:0
评论:0

进程(Process)

   进程是 独立的执行单元,拥有独立的内存空间和系统资源

   在 Electron 中,每个进程相互隔离,通过 IPC(进程间通信) 进行数据交换。


   Electron 中的主要进程类型

   

进程类型职责数量
主进程(Main Process)- 管理应用生命周期
- 创建窗口
- 访问 Node.js API
1 个
渲染进程(Renderer Process)- 展示网页内容
- 运行页面脚本(HTML/CSS/JS)
- 通过 preload 脚本有限访问 Node.js
每个窗口 1 个
其他辅助进程- GPU 进程(图形渲染)
- Utility 进程(网络请求、文件操作等)
按需创建


   进程间通信(IPC)

   主进程 ↔ 渲染进程:

// 主进程
const { ipcMain } = require('electron')
ipcMain.on('msg-from-renderer', (event, data) => {
  event.reply('reply', '收到消息')
})

// 渲染进程
const { ipcRenderer } = require('electron')
ipcRenderer.send('msg-from-renderer', 'Hello')
ipcRenderer.on('reply', (event, data) => {
  console.log(data) // '收到消息'
})


线程(Thread)

   线程是 进程内的执行单元,共享同一进程的内存和资源。

   Electron 中的线程由 Chromium Node.js 底层管理


   关键线程类型

   

线程类型职责
主线程(UI 线程)- 处理 UI 更新
- 执行 JavaScript 主逻辑(如 Vue/React 代码)
I/O 线程- 处理网络请求、文件读写等异步操作(通过 Node.js 线程池
Worker 线程- 执行 CPU 密集型任务(通过 worker_threads 模块创建)




区别

    • 内存使用方面 每个进程都有操作系统分配给他们的一块单独的内存,默认情况下,一个进程的内容无法被另外一个进程所共享,一个进程的内存空间是共享的,每个线程都可以使用这些共享内存。
    • 通信机制的区别
    • 量级方面的区别


主进程 Main Process

   每个Electron应用都有一个单一的主进程,作为应用程序的入口点。主进程在Node.j环境中运行,这意思着它具有require模块和使用所有的Node.js API的能力。

    • 窗口管理
    • 应用程序生命周期
    • 原生API


渲染器进程 Renderer Process

   每个Electron 应用都会为每个打开的 Browserwindow(与每个网页嵌入)生成一个单独的渲染器进程。洽如其名,渲染器负责 渲染网页内容。

   渲染器无权直接访问 require 或其他 Node.js API。













评论(共0条)