1、并发可以提高程序运行速度,能够更好的管理程序设计。
2、在多处理器主机上,可以在这些处理器上运行多个任务,提高吞吐量;然而在单个处理器的主机上,使用并发的话,貌似要比同步的执行的程序资源开销大,因为其中增加了所谓上下文切换的代价,要从一个任务切换到另一个任务,到这里,我们可能认为在但处理器的主机上,使用并发并不能提高程序的性能,反而会消耗更多资源,然而有个问题使得并发在单个处理器上变的不同,这个问题就是阻塞。我们来看看阻塞的含义,如果程序中的某个任务因为控制范围之外的某个条件(一般是IO问题)而导致不能继续的执行下去,那么我们说这个任务是阻塞的。这个时候如果没有并发,整个程序都会停止下来,直到外部的条件满足了,相反如果使用并发的话,那么当这个任务阻塞是,程序中的其他任务还可以继续执行,这样整个程序就可以继续向前执行了。综上来看,从性能角度来上,如果没有任务阻塞的话,并发在单个处理器上是没有任务意义的。
3、并发在单处理器上常见运用是事件驱动的编程
4、并发在JAVA上的体现,是由线程来实现的。我们知道并发程序就是将程序划分为多个分离的、独立运行的任务。通过使用多线程机制,这些独立任务中的一个都将有线程来驱动。一个线程就是一个进程中一个单一的顺序控制流,因此,单个进程可以拥有多个并发执行的任务,但是你的程序使得每个任务都好像有自己的CPU一样,其实底层机制是切分CPU时间。JAVA的线程机制,使得我们可以在并发并发编程上可以从系统处理器这个层次脱离出来,不用去关心程序是运行在单个处理器上,还是多个处理器上的。java的线程机制使我们的并发编程建立在透明的、可扩展的方法上。
原文地址:http://blog.csdn.net/zxjllz405/article/details/40714987