3分钟彻底理解并行和并发

作者: 码农的荒岛求生分类: 计算机技术 发布时间: 2024-04-02 07:49:17 浏览:14926 次

3分钟彻底理解并行和并发

名上有151:
早而8点,饭中观之,大悦,故而点赞,留此言

【回复】[支持],给我整不会了[笑哭]
孤光鸿影:
其实并行还有第二种情况,即搬砖和劈柴被交替同时进行。假设第一秒甲搬砖乙劈柴,第二秒甲劈柴乙搬砖。如此交替。其实也是并行。这种情况往往是线程数量和CPU核心数不一致,且线程往往执行一些任务后休眠。最典型的就是套接字。例如受到消息时唤醒,处理完休眠。每次唤醒都可能被转移到不同的核心上执行。

【回复】可以讲下什么是套接字Socket吗?[酸了]
0xff_bytes:
视频中说到:“最早期的单核系统下,尽管我们可以多线程编程,但实际是以并发的方式推进,是在两个线程之间来回切换去处理任务”。说的就是Python语言,Python语言诞生近30年,上个世纪的产物,由于早期 底层解释器结构设计,所以Python当时并没有考虑到使用多核能并行,Python 多核并行 问题至今近30年。目前仍没有得到解决,这里指的是Cpython解释器,也就是官方版本的Python,目前官方在招贤纳士去解决这个问题,因为要改的底层太多了,最近几年Python能有望实现 多核心并行!该问题关键词:no-GIL

【回复】回复 @花泠月 :意思大差不差,多线程任务的时候,不得用到多个核,才能发挥出多线程真正的作用
【回复】python多线程没用的原因是后面那个,两个线程共用一副手套
【回复】目前测试版本还是自损30%才能并行[笑哭]
森屿暖树vii:
说一个现实的问题,大多数企业的内部并发不高的系统完全不会考虑并发问题,然而你想要去考虑这个问题的时候,别人会用不理解的眼光看待你,好像这件事情是可有可无的一样,不知道有没有和我有一样感觉的同学[酸了]

【回复】理解程序级的并发并行概念,不同于业务系统的并发概念. 至少百分之95的业务系统都不需要针并发做特殊处理,大部分程序员即便日常接触到一些高并发的业务场景,也会被MQ之类的中间件消化掉.
【回复】企业内部系统一般不会有那么高的并发访问,所以不考虑这块也没问题的
【回复】回复 @记录日子里 :可不可以理解为,有其他程序替你把并发做好了,你写业务就行了?
没有尾巴的圆:
所以像支持协程的语言 天然支持高并发 其实本质上还是跟先搬砖后砍柴这样的批处理效率一样, 甚至切换时间算进去还要略低一些是吗 协程真正解决的是等待时间长的切换使用资源最大化的问题 比如 煲汤和搬砖 批处理要先煲汤 煲汤一小时完成后才搬砖 而协程是先煲汤 等汤上锅炖的时候我切换去砍柴 这样柴砍完了 汤煲好了 省去了批处理的等待煲汤时间 换算成程序的话 就是省去了一些数据库查询时间可以干其他 博主我这么理解正确吗

不会起名的萌新99:
所以高并发只是为了平均线程执行时间吗?防止第一个线程和最后一个线程时间差太多?我一直以为并发是真的在一起走,然后又不理解只有几个核心是怎么一起走那么多线程的。。。

和平区梅西:
所以请问一个cpu理论上同时只能执行一个线程么

【回复】一个核心同一时间只能执行一个线程,但是一个CPU不只有一个核心
【回复】你理解错了一个CPU和一个核心的概念
【回复】现在不都是几核几线程么
大熊猫阿肥:
多核就是并行(同一时间执行),单核就并发(交替执行)。

再回首已是云玩家:
把这俩个概念放一起的都是nt,除了会引起混淆毫无意义。

嘉然今天吃奶琪淋:
我认为最关键的认知:并发是优化时间的分配。这是理解一切的前提,不用引入其它现实世界的比喻,只需要先明白,并发是优化时间的分配。

Jumppinggg:
二人三足,被绑脚的是并行,一起出发的对手是并发

Xchkoo_official:
目前还没有深入了解过java 接触过的语言多是用协程实现的 请问想学习多线程 线程锁这些概念是还是去学下java比较好吗

Xchkoo_official:
目前还没有深入了解过java 接触过的语言多是用协程实现的 请问想学习多线程 线程锁这些概念是还是去学下java比较好吗

游游的鱼0:
[星星眼]讲的真好,深入浅出~三连了~

loopking:
如果并发不节省时间,那么它有什么意义呢?

我是程序员 #计算机 #python #程序 #并发 #并行 #线程 #编程 #程序员 #代码

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!