IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 并发、并行、异步、同步?异步与多线程的区别? -> 正文阅读

[JavaScript知识库]并发、并行、异步、同步?异步与多线程的区别?

先说结论:

  • 总结:
    • 异步:一个线程(不浪费其他线程的资源,多线程会因为web中的IO操作而导致时间浪费)通过某种方式(如:并发+回调函数)来实现多个"时间线"。特点:1是在一个"时间线"中的某时刻,另一个"时间线"的结果不一定会返回。2是简单高效(小而美)
    • 多线程:多个线程(多个线程同时工作,因为计算密集的应用,如视频处理,不像web中IO操作而使某些线程停滞)通过并发的方式来实现多个线程分工合作,同时来完成计算,从而提高CPU的利用率与效率。特点是比较复杂,多线程会有很多要考虑的因素,如线程安全(总之实现多线程代码比较复杂)。
  1. 并发
    1. 一个单核CPU,通过分配时间片的方式,执行多个任务(多个时间线上快速轮流工作)。
  2. 并行
    1. 多核CPU,不同核执行不同任务,从而实现多个任务(多个人从不同位置开始做一件事)
  3. 同步
    1. 只有一条时间线(代码一行一行执行)
  4. 异步
    1. 有多个时间线(可以开辟新的时间线,时间线相互独立,所以会出现A时间线需要B时间线的结果,但是B还没有得到结果的情况。通过AJAX或fetch来实现,通过Promise|Axios|aysnc/await来优化结构)
  • Javascript的异步:
    • 通过回调的方式,在一个主线程中,用并发的形式实现异步
  • 异步多线程,都是实现多个时间线的方法
    • 异步:适合需要较多时间线如web应用(需要大量IO操作,特点是请求与返回需要时间)
      • 如果使用多线程,每个线程都会在异步返回结果之前浪费很多时间。而且线程内存开销,线程切换开销,都会浪费很多资源。
    • 多线程:适合计算密集的应用(如,视频渲染,不可能一帧一帧渲染,而是多个核心分工一起合作)
      • 因为:
        • 每个线程不会因为因为IO浪费时间
        • 可以让每块CPU发挥作用
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:37:40  更:2022-04-30 08:38:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:03:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码