我知道在计算机的理论中,并发不是表示在同一时刻,而是在某个时间段内。
强调的是某个时间段内
那么计算机会在同一时刻执行一个事件吗?
单核CPU是在不停的切换,那么多核呢,或者多机呢?
[danger] 实际上时间是一个相对概念,秒、微妙,还可以再进行细化,理论上存在同一时刻,但是实际上却不能够证明这一点,因为理论上你知道无限细分最终也是会在一个点上的,而实际上你又无法去实际的证明它。这是一个无法被证明的理论。
既然理论上存在同一时刻,那么我们如何通过什么区证明这一点呢,我们相信时间,但是时间的刻度可以无限细分,而我们能掌握,辨别的刻度是有限的,或者说,我们在最大限度上的刻度上发像是相同的,就认为是同一时刻呢?
卧槽,这该是一个哲学问题吧。。。
什么是同一时刻?time1==time2?如果允许无限细分的话你的计算机是没法把time1和time2表示出来的,这取决于你的测量工具,你的工具是日历,那么time1 time2就只是日期,普通的表可以到秒,秒表可以到毫秒级……
计算机的上的时间是离散的,也就是以机器周期T进行分割的,每个机器周期时长为T,对应处理器主频的倒数1/f。T作为CPU上最小时间单位,单个CPU上,每一个T只可能被其中的一个事件(程序)所占有。也即如果你以T作为你所谓时刻的最小单位,那么在单核CPU上两个事件无法同时发生;多核上,每个T有可能被多个核同时指向,也就是两个事件有可能同时发生。但需考虑,如果事件是独占性的(比如SMP架构的多核CPU,在访问内存时是独占的)那么就不可能同事发生;多机上,由于不同CPU采用不同的CPU时钟源,你更难界定同一时刻,在确保T同步的情况下才有可能“同一个时刻两个事件同时发生”。
其实所有这些,都取决于你对“同一时刻”的定义。。。