xjngbla

xjngbla

V2EX 第 531530 号会员,加入于 2021-02-01 17:03:55 +08:00
迫于要写程序员年终总结,
程序员  •  xjngbla  •  7 天前  •  最后回复来自 cala
10
关于 Java 多线程的疑问
程序员  •  xjngbla  •  16 天前  •  最后回复来自 xjngbla
2
代理导致的网络问题
程序员  •  xjngbla  •  51 天前  •  最后回复来自 xjngbla
8
关于上传文件
Google  •  xjngbla  •  72 天前  •  最后回复来自 juzisang
2
关于离线安装.deb 包的问题
Linux  •  xjngbla  •  69 天前  •  最后回复来自 liuliancao
17
关于 Java 调用命令行的问题
程序员  •  xjngbla  •  86 天前  •  最后回复来自 xjngbla
7
腾讯云服务器怎么释放公网 ip
服务器  •  xjngbla  •  317 天前  •  最后回复来自 Blessing1
7
xjngbla 最近回复了
7 天前
回复了 LxExExl 创建的主题 生活 我竟然也遇到了发小借钱 有点难过
千万别借,我现在还整天要账,死活不给,还拉黑我
以前的老师确实是在教室里抽烟
16 天前
回复了 tlmn 创建的主题 程序员 喜新厌旧 该如何调理
@thedrwu
👌
666
16 天前
回复了 xjngbla 创建的主题 程序员 关于 Java 多线程的疑问
@mineralsalt 在网上找到了这段话,明白了,谢谢

异步与多线程的区别
通过上面的介绍,我们可以看出多线程都是关于功能的并发执行。而异步编程是关于函数之间的非阻塞执行,我们可以将异步应用于单线程或多线程当中。

<b>因此,多线程只是异步编程的一种实现形式。</b>

比如,你和你的朋友决定一起做一顿午餐。“异步”就是你对朋友说:“你去商店买意大利面,回来的时候告诉我一声,然后一起做午餐。在你买意大利面的同时,我去准备番茄酱和饮料。”

而“线程”是:“你烧水,我加热番茄酱。当水烧开了,告诉我,我把意大利放进去。当番茄酱热了,你可以把奶酪添加进去。当两者都完成了,就可以坐下来一起吃晚餐。”在线程的示例中,我们可以看到“When ,Do”的事件顺序,而这些顺序代表着每个人(线程)的指令集集合的顺序。

上述示例可以看出,多线程是与具体的执行者相关的,而异步是与任务相关的。

多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码,可以实现线程间的切换执行。

异步和同步是相对的,异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。

多线程就是实现异步的一个方式。异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。

所以本质上,异步和多线程并不是一个同等关系,异步是最终目的,多线程只是实现异步的一种手段。
同价位的 win 不比 mac 好用么
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2353 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 02:25 · PVG 10:25 · LAX 18:25 · JFK 21:25
♥ Do have faith in what you're doing.