赞
踩
面试官问这个,主要想考察 什么是并行?
什么是并发?
你能用生活中的例子举例嘛?
进一步观察候选者是否对并发编程是否思考过
等等。要想学问大,就要多读、多抄、多写。
当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状态。这种方式我们称之为并发(Concurrent)。这时的处理逻辑如下图:
当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。这时的处理逻辑如下图:
计算机操作系统中把并行性和并发性明显区分开,主要是从微观的角度来说的,具体是指:
进一步解释两者区别:
由此看来,我们常说的并发编程的目的就很明确,那就是是充分的利用处理器的每一个核,以达到最高的处理性能。
例子一:
例子二:
并发和并行,面试中出现的频率还是蛮高的。不管是招聘简历,还是实际工作中,都能看到高并发编程等相关的词汇。学会从日常生活中,工作中,思考并总结,举例子说明相关概念,显得很重要。本文总结了并发与并行的概念,并举例子说明,希望对大家学习有帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。