multithreading - 如果客户端只有一个核心 CPU,Web Worker 是否可以正常工作?
问题描述
纯粹的好奇,我只是想知道如果 CPU 中只有一个线程可用,网络工作者是否会设法执行一个单独的线程,也许有一些虚拟化,使用 GPU?
谢谢!
解决方案
您的问题似乎有两个前提:首先,网络工作者使用线程;其次,多线程需要多个内核。但两者都不是真的。
首先:实际上并没有要求使用线程来实现网络工作者。用户代理可以自由使用进程、线程或任何“等效结构”[参见 web worker 规范]。如果他们愿意,他们可以在单个线程中使用多任务处理。Web Worker 脚本并发运行,但不一定与浏览器 JavaScript 并行运行。
第二点:多个线程很可能在单个 CPU 上运行。它的工作原理很像单线程 JavaScript 中的并发异步函数。
所以是的,回答你的问题:网络工作者确实在单个核心客户端上正常运行。您将失去一些性能优势,但代码仍会像在多核系统中一样运行。
推荐阅读
- vue.js - 未添加 columnSummary
- python-3.x - 如何解决 AttributeError:模块 'pandas' 没有属性 'ewma'?
- assembly - 尝试在 yasm 中运行图形时出现分段错误
- mysql - 在codeigniter中从数据库中获取数据时复制数据
- odoo - 如何为 TransientModel-Odoo10 中的字段设置默认值 (False)?
- dependencies - OSM 安装期间未满足的依赖项
- sql - 查找两个选择的结果的差异
- cron - Airflow 的 DAG 在一分钟内运行多次,尽管它计划每 5 分钟运行一次
- javascript - 在 vue 实例外使用 ionic ToastController
- regex - 如何替换出现在两个字符之间的特定字符?