怎么去证明两个是事件是在同一时刻发生的?
我知道在计算机的理论中,并发不是表示在同一时刻,而是在某个时间段内。
强调的是某个时间段内
那么计算机会在同一时刻执行一个事件吗?
单核CPU是在不停的切换,那么多核呢,或者多机呢?
[danger] 实际上时间是一个相对概念,秒、微妙,还可以再进行细化,理论上存在同一时刻,但是实际上却不能够证明这一点,因为理论上你知道无限细分最终也是会在一个点上的,而实际上你又无法去实际的证明它。这是一个无法被证明的理论。
既然理论上存在同一时刻,那么我们如何通过什么区证明这一点呢,我们相信时间,但是时间的刻度可以无限细分,而我们能掌握,辨别的刻度是有限的,或者说,我们在最大限度上的刻度上发像是相同的,就认为是同一时刻呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
卧槽,这该是一个哲学问题吧。。。
什么是同一时刻?time1==time2?如果允许无限细分的话你的计算机是没法把time1和time2表示出来的,这取决于你的测量工具,你的工具是日历,那么time1 time2就只是日期,普通的表可以到秒,秒表可以到毫秒级……
计算机的上的时间是离散的,也就是以机器周期T进行分割的,每个机器周期时长为T,对应处理器主频的倒数1/f。T作为CPU上最小时间单位,单个CPU上,每一个T只可能被其中的一个事件(程序)所占有。也即如果你以T作为你所谓时刻的最小单位,那么在单核CPU上两个事件无法同时发生;多核上,每个T有可能被多个核同时指向,也就是两个事件有可能同时发生。但需考虑,如果事件是独占性的(比如SMP架构的多核CPU,在访问内存时是独占的)那么就不可能同事发生;多机上,由于不同CPU采用不同的CPU时钟源,你更难界定同一时刻,在确保T同步的情况下才有可能“同一个时刻两个事件同时发生”。
其实所有这些,都取决于你对“同一时刻”的定义。。。
请搜索「普朗克时间」。
请搜索「同时性的相对性」。
两个事件 A 和 B 的时序可能的关系有:
物理上没法证明同时,相对论说每个物体都有它自己的时钟,不存在绝对的同时
没必要想的这么复杂吧。是否同时发生,这个现象只有在观测的时候才有意义。也就是说事件A B,如果它们发生的时间间隔小于你的观测精度,那么久可以认为它们是同时发生的。也就是说在一个读取周期内发生的事件都是同时的。而且在一个观测间隔内争辩A,B是不是同时发生的也没有意义。反正你没办法证明它们不是同时发生的。
这个问题就好比 你有一个馒头每天吃一半 问你几天能吃完 请问你吃的完吗?
我自认为自己是个普通人,这些不但耗费大脑细胞而且消耗时间没有结果的问题我一般是不会去想的。
比方说两个人同时提交订单。
1、查询库存。
2.扣减库存。
我们可以来大胆假设:
A.甲查询库存,甲扣减库存,乙查询库存,乙扣减出库,这就没有什么冲突;
B.甲查询库存,乙查询库存,甲扣减库存,乙扣减库存,这就是并发。因为乙查询是甲未扣减之前的库存,所以这么操作会有问题。
反正我顶一个极小的时间段,都在这个时间段内进行就是同时