标签:http ar os sp java for on div 问题
串行程序中,程序会顺序的执行每一条指令,在整个程序的运行过程中,仅存在一个运行上下文。即一个调用栈,一个堆。
不存在多个运行上下文。
在传统的命令式语言中,如C/C++,Fortran,Java,C#之类,串行执行是根基。
并发是指,程序在运行的过程中存在多于一个的执行上下文。这些执行上下文一般对应着不同的调用栈。
并发概念的出现,主要有几个方面的原因:
在单处理器上,并发程序虽然有多个上下文运行环境,但某一个时刻只有一个任务在运行。
但在多处理器上,因为有了多个执行单元,就可以同时有数个任务在跑。
这种物理上同一时刻有多个任务同时运行的方式就是并行。
和并发相比,并行更加强调多个任务同时在运行。
而且并行还有一个层次问题,比如是指令间的并行还是任务间的并行。
分布式在并行处理的基础上,强调任务正在执行的物理设备,如处理器、内存等等硬件,在物理上是分开的。
后三个概念涵盖的范围是:并发>并行>分布式。
虽然串行限制了一个栈、一个堆,一个运行上下文,处理器只能死板的按照指令的序列执行。
但,当有多个栈,多个运行上下文时,就有了很多有趣的做法,可以去应对很多有趣的问题。
串行(Sequential)、并发(Concurrent)、并行(parallel)与分布式
标签:http ar os sp java for on div 问题
原文地址:http://my.oschina.net/yoyo1987/blog/348199