并行于并发区别

转载 2012年03月30日 21:29:21

一:并行与并发:
1.“并行”是指无论从微观还是宏观,二者都是一起执行的,就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。
2.而“并发”在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,从宏观外来看,好像是这些进程都在执行,这就好像两个人用同一把铁锨,轮流挖坑,一小时后,两个人各挖一个小一点的坑,要想挖两个大一点得坑,一定会用两个小时。
3.从以上本质不难看出,“并发”执行,在多个进程存在资源冲突时,并没有从根本提高执行效率。

1.posix中,并发的定义要求:延迟调用线程的函数不应该导致其它线程的无限期延迟;
2.并发操作之间科能相互交替,导致程序相互独立的运行(一个程序不必等到另一个程序结束后运行),但是并发并不意味着操作同时执行。
3.并行的补充含义是指事情在相同的方向上同时进行(没有交错)。真正的并行只能在多处理器系统中存在,而并发可以在单处理器和多处理器系统中都存在。
并发能够在单处理器系统中存在是因为并发是并行的假象,并行要求程序能够同时执行多个操作,而并发只是要求程序假装同时执行多个操作(每个小时间片执行一个操作,多个操作轮流执行)。


1.在多处理器系统中,线程模式可以让一个进程同时执行多个独立的运算。一个运行在双CPU上的计算密集型多线程程序几乎可以获得传统的
单线程程序两倍的性能。“几乎两倍”是基于以下的事实:创建额外的线程和执行线程间的同步会带来额外的开销。这种效果通常称为“可扩展性“。
2.“可扩展性“总是随着CPU数量的增加而下降,因为可能会有更多的锁操作和内存冲突。
3.多处理器系统中的硬件必须提供同步访问内存的机制。当每个处理器有自己的数据高速缓存时,其中的数据必须与其它处理器缓存的数据以及内存中的数据保持一致。

1.线程编程模式允许程序在等待如I/O之类的阻塞操作的时候继续其它计算。这对网络服务器和客户端是有用的,也是C/S系统使用线程的主要原因。
当一个线程在等待费时的网络I/O操作的时候,该线程被阻塞,而其它线程还可以独立的运行。某些系统支持异步I/O操作,可以具有类似的好处,但
大部分UNIX类系统不提供异步I/O操作,而且异步操作通常比线程更复杂。
注:UNIX系统支持“非阻塞式I/O“:允许程序推迟I/O操作,知道它能够不被中断的完成该操作。而异步I/O:能在程序执行其它操作的同时继续I/O。

二:多线程编程模型的优点:
1.在多处理器系统中提高开发程序的并行性。除并行性这一优点需要特殊硬件支持外(多CPU),其它优点对硬件不作要求。
2.在等待慢速外设I/O操作结束的同时,程序可以执行其它计算,为程序的并发提供更有效,更自然的开发方式。
3.一种模块化编程模型,能够清晰的表达程序中独立事件间的相互关系。

相关文章推荐

并行和并发的区别

并行和并发的区别所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上看多...

Java-并发和并行的区别

并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在操作系统中,并发是指一个时间段中有几个程...

并发与并行的区别

3、操作符 3.1 略 3.2 使用java操作符 Java操作符 + - * / ,这些基本操作符作用于操作数,生成一个新值。几乎所有的操作符都只能操作基本类型,例外的操作符是= 、== 和!...

并发与并行的区别

""" https://github.com/forhappy/Cplusplus-Concurrency-In-Practice/blob/master/zh/chapter1-Introdu...

并发与并行的区别

来自原文:http://blog.csdn.net/coolmeme/article/details/9997609 并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指...

并发和并行的区别

并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行 是指两个或者多个事件在 同一时刻 发生;而并发 是指两个或多个事件在 同一时间间隔 内发生。当有多个线程在操作时,如果系统...

并发和并行的区别

并行 并行(parallel)指在同一时刻,有多条指令在多个处理器上同时执行。就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。所以无论从微观还是从宏观来看,二者都是一起执行的。并发并发(co...

并发和并行的区别

并发与并行的区别

并发和并行的区别

所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上看多个几乎同时到达的...

并发和并行的区别

在GitHub上看到一幅图,问如何向五岁的小孩讲解并发和并行。然后有人以这幅图做答:用咖啡机的比喻来形容并发和并行,从中最直接的体会是,并发是有状态的,某一线程同时执行一个任务,完了才能进行到下一个,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)