怎么去证明两个是事件是在同一时刻发生的? 财富值83

2017-08-20 16:24发布

我知道在计算机的理论中,并发不是表示在同一时刻,而是在某个时间段内。

强调的是某个时间段内

那么计算机会在同一时刻执行一个事件吗?

单核CPU是在不停的切换,那么多核呢,或者多机呢?

[danger] 实际上时间是一个相对概念,秒、微妙,还可以再进行细化,理论上存在同一时刻,但是实际上却不能够证明这一点,因为理论上你知道无限细分最终也是会在一个点上的,而实际上你又无法去实际的证明它。这是一个无法被证明的理论。

既然理论上存在同一时刻,那么我们如何通过什么区证明这一点呢,我们相信时间,但是时间的刻度可以无限细分,而我们能掌握,辨别的刻度是有限的,或者说,我们在最大限度上的刻度上发像是相同的,就认为是同一时刻呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答

这个问题就好比 你有一个馒头每天吃一半 问你几天能吃完 请问你吃的完吗?
我自认为自己是个普通人,这些不但耗费大脑细胞而且消耗时间没有结果的问题我一般是不会去想的。

比方说两个人同时提交订单。
1、查询库存。
2.扣减库存。

请搜索「普朗克时间」。

计算机的上的时间是离散的,也就是以机器周期T进行分割的,每个机器周期时长为T,对应处理器主频的倒数1/f。T作为CPU上最小时间单位,单个CPU上,每一个T只可能被其中的一个事件(程序)所占有。也即如果你以T作为你所谓时刻的最小单位,那么在单核CPU上两个事件无法同时发生;多核上,每个T有可能被多个核同时指向,也就是两个事件有可能同时发生。但需考虑,如果事件是独占性的(比如SMP架构的多核CPU,在访问内存时是独占的)那么就不可能同事发生;多机上,由于不同CPU采用不同的CPU时钟源,你更难界定同一时刻,在确保T同步的情况下才有可能“同一个时刻两个事件同时发生”。

卧槽,这该是一个哲学问题吧。。。
什么是同一时刻?time1==time2?如果允许无限细分的话你的计算机是没法把time1和time2表示出来的,这取决于你的测量工具,你的工具是日历,那么time1 time2就只是日期,普通的表可以到秒,秒表可以到毫秒级……

请搜索「同时性的相对性」。

其实所有这些,都取决于你对“同一时刻”的定义。。。

物理上没法证明同时,相对论说每个物体都有它自己的时钟,不存在绝对的同时

我们可以来大胆假设:
A.甲查询库存,甲扣减库存,乙查询库存,乙扣减出库,这就没有什么冲突;
B.甲查询库存,乙查询库存,甲扣减库存,乙扣减库存,这就是并发。因为乙查询是甲未扣减之前的库存,所以这么操作会有问题。

但是时间的刻度可以无限细分

一周热门 更多>