并行和并发的区别

并发:指应用能够交替执行不同的任务,其实并发有点类似于多线程的原理,

     多线程并非是同时执行多个任务,如果你开两个线程执行,就是在你几乎不可能察觉到的速度

 不断切换这两个任务,以达到“同时执行效果”,其实并不是,只是计算机速度太快,我们无法察觉到而已。

 例如,吃一口饭,喝一口水,以正常速度看,完全能看得出来,但是以n倍速度。。。

并行:指应用能够同时执行不同的任务,eg:边吃饭边打电话

区别:一个是交替执行,一个是同时执行

做并发编程之前,必须首先理解什么是并发,什么是并行,什么并发编程,什么是并行编程。

 有评论说,并发是不是一个线程,并行是多个线程?

 答:并发和并行都可以是很多个线程,就看这些线程能不能同时被(多个)cpu执行,

 如果可以就说明是并行,而并发是多个线程被(一个)cpu 轮流切换着执行。

如果某个系统支持两个或者多个动作(Action)同时存在,那么这个系统就是一个并发系统。如果某个系统支持两个或者多个动作同时执行,那么这个系统就是一个并行系统。并发系统与并行系统这两个定义之间的关键差异在于“存在”这个词。、

在并发程序中可以同时拥有两个或者多个线程。这意味着,如果程序在单核处理器上运行,那么这两个线程将交替地换入或者换出内存。这些线程是同时“存在”的——每个线程都处于执行过程中的某个状态。如果程序能够并行执行,那么就一定是运行在多核处理器上。此时,程序中的每个线程都将分配到一个独立的处理器核上,因此可以同时运行。

我相信你已经能够得出结论——“并行”概念是“并发”概念的一个子集。也就是说,你可以编写一个拥有多个线程或者进程的并发程序,但如果没有多核处理器来执行这个程序,那么就不能以并行方式来运行代码。因此,凡是在求解单个问题时涉及多个执行流程的编程模式或者执行行为,都属于并发编程的范畴。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值