当前位置: 首页 > news >正文

electron多进程设计

👨 作者简介:大家好,我是Taro,全栈领域创作者
✒️ 个人主页:唐璜Taro
🚀 支持我:点赞👍+📝 评论 + ⭐️收藏


文章目录

  • 前言
  • 一、进程和线程
    • 1. 进程
    • 2. 线程
    • 3. 进程和线程的区别
    • 4. 主进程和渲染进程
  • 二、electron多进程设计
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

进程和线程是操作系统中的重要概念。进程是独立运行的程序,每个进程有自己的内存空间;线程是进程中的一个执行单元,多个线程共享进程的内存空间,可以实现并行计算。Electron框架采用多进程设计,主进程管理应用窗口和生命周期,渲染进程负责用户界面和网页内容,两者通过特定机制进行通信。这种设计提高了应用的稳定性和性能。


提示:以下是本篇文章正文内容,下面案例可供参考

一、进程和线程

1. 进程

在这里插入图片描述

  • 进程是正在运行的计算机程序实例(instance of a computer program that is being executed),每个运行的程序就是一个进程。

  • 示例: 如同时打开浏览器、音乐播放器和视频软件,每个程序都是独立的进程。

  • 管理工具: 可通过任务管理器(Windows)或活动监视器(Mac)查看当前运行的进程。

2. 线程

在这里插入图片描述

  • 定义: 线程是进程内的执行单元,一个进程可包含多个线程。
  • 类比: 将进程比作车间,线程则是车间里的工人,协同完成任务。
  • 特点: 浏览器JavaScript执行环境是单线程且事件驱动的。

3. 进程和线程的区别

在这里插入图片描述

  • 内存使用:
    进程:操作系统为每个进程分配独立内存空间,默认不能共享(如浏览器无法访问Keynote的内存)
    线程:共享所属进程的内存空间(如车间工人共享车间空间)
  • 通信机制:
    进程间通信需要特殊机制(如IPC)
    线程间通信直接通过共享内存实现
  • 资源开销:
    线程更轻量级,创建更快,资源消耗更少

4. 主进程和渲染进程

1)主进程
在这里插入图片描述

  • 特点:
    (1)有且仅有一个,作为应用入口点
    (2)在Node.js环境中运行,可使用所有Node.js API

  • 职责:
    窗口管理(通过BrowserWindow创建/管理窗口)
    应用生命周期控制(通过electron.App模块)
    访问原生API
    代码示例: 通过app.on(‘ready’)事件创建窗口
    2)渲染器进程
    在这里插入图片描述

  • 特点:
    每个BrowserWindow生成一个独立渲染进程
    负责渲染网页内容
    无权直接访问require或其他Node.js API

  • 设计优势:
    单个tab崩溃不会影响其他进程
    但会消耗更多内存(如Chrome的多进程架构)

  • 关键功能: 通过与主进程通信(IPC)来扩展功能,突破浏览器限制

二、electron多进程设计

  • 进程(Process)

正在运行的独立程序实例,操作系统分配独立内存空间(如浏览器、音乐软件并行运行)

进程间默认内存隔离(浏览器无法访问Keynote内存)

⭐⭐

  • 线程(Thread)

进程内的执行单元,共享进程内存(类比“车间工人”),支持多线程编程

浏览器JS环境为单线程(事件驱动模型)

⭐⭐⭐

  • 进程 vs 线程
  1. 内存使用:进程独立/线程共享
  2. 通信机制:进程需IPC/线程直接交互
  3. 量级:线程更轻量

多线程崩溃可能影响整个进程,而多进程设计(如Chrome)可隔离崩溃

⭐⭐⭐⭐

  • Electron主进程(Main Process)

唯一入口,拥有Node.js环境权限(require模块、原生API调用),负责窗口管理(BrowserWindow)、生命周期控制(app模块)

可直接访问系统级功能(如文件操作)

⭐⭐⭐

  • Electron渲染进程(Renderer Process)

每个窗口/Tab独立进程,仅渲染网页内容(无权直接调用Node.js API)

需通过IPC与主进程通信才能突破浏览器限制

⭐⭐⭐⭐

  • Electron多进程架构

基于Chromium设计:主进程统筹全局,渲染进程隔离运行(崩溃不影响其他窗口)

内存开销大(多进程代价)

⭐⭐⭐

  • IPC(进程间通信)

主进程与渲染进程交互的核心机制(后续课程重点)

渲染进程功能扩展的关键(如调用原生API)

⭐⭐⭐⭐

总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了Electron框架采用多进程设计,主进程管理应用窗口和生命周期,渲染进程负责用户界面和网页内容,两者通过特定机制进行通信。这种设计提高了应用的稳定性和性能。

http://www.dtcms.com/a/322722.html

相关文章:

  • Uipath Studio中邮件自动化
  • 使用GTX ip core + SDI IP core实现SDI设计
  • flex布局原理
  • Day 9: Transformer注意力机制原理 - 从直观理解到数学推导的完整解析
  • Vue接口测试平台十三 —— 测试报告
  • Java基础-红包雨游戏-多线程
  • 如何判断一个数是 2 的幂 / 3 的幂 / 4 的幂 / n 的幂 位运算 总结和思考 每日一题 C++的题解与思路
  • 後端開發技術教學(四) 數據交互延伸
  • Visual Studio Code (v1.103) 中 GitHub Copilot 最新更新!
  • Microsoft Office Visio(流程图)学习笔记
  • 信息安全及防火墙总结
  • Android 开发问题:The specified child already has a parent.
  • 五十八、【Linux系统nginx服务】nginx代理服务器、nginx优化
  • MySQL 从入门到精通 2:函数
  • Linux的软件防火墙iptables
  • 香港服务器容器网络插件的多节点通信性能基准测试
  • LeetCode 刷题【36. 有效的数独】
  • 6- Python 网络爬虫—验证码突破全解析: 从 OCR 到深度学习的对抗实战指南
  • CSS 选择器进阶:用更聪明的方式定位元素
  • DBSCAN聚类算法实战全解析
  • 多Agent技术发展与进化
  • vue+flask山西非遗文化遗产图谱可视化系统
  • IntelliJ IDEA 新手全方位使用指南
  • 深入 FastMCP 源码:认识 tool()、resource() 和 prompt() 装饰器
  • Kubelet 探针如何选择 IP:status.PodIP 溯源与“同 Pod 两个 IP“现象解析
  • 回答“http协议 ,js组件化,工程化, seo优化策略 ,针对不同平台终端适配 web标注和兼容性”
  • nrm工具管理镜像源
  • 通过 Certimate 统一管理 SSL 证书 支持自动化申请、全平台部署
  • 第八章 SQL编程系列-Oracle慢SQL优化实战:从执行计划到索引设计的深度解析
  • 编程速递:2025 年巴西 Embarcadero 会议,期待您的到来