多线程编程之串行,并发,并行
串行,并发,并行
假设有事件A,B,C。A耗时15小时,投入5小时,等待10小时,B耗时10小时,投入2小时,等待8小时,
C耗时10小时,投入10小时。有3,中处理事情的方式。
串行:事件A,B,C逐个逐个执行。(需要投入1个人)
并行:事件A,B,C一起同时执行。(需要投入3个人)
并发:A等待的时候做B,B等待的时候做C。(需要投入一个人)
分析:
软件角度:
并发指某个软件在某段时间内以交替的方式去完成多个任务,而并行是多个软件以齐头并进的方式去完成多个任务。
硬件角度:
并发可以理解为一个处理器采用时间片分配的技术处理多个任务,而并行是多个处理器同时处理多个任务。
多线程编程的实质就是将任务的处理方式由串行改为并发,实现并发化,有的任务可以改变的就叫可并发化。