我知道在電腦的理論中,並發不是表示在同一時刻,而是在某個時間段內。
強調的是某個時間段內
那麼電腦會在同一時刻執行一個事件嗎?
單核心CPU是在不停的切換,那麼多核心呢,或是多機呢?
[danger] 實際上時間是一個相對概念,秒、微妙,還可以再進行細化,理論上存在同一時刻,但是實際上卻不能夠證明這一點,因為理論上你知道無限細分最終也是會在一個點上的,而實際上你又無法去實際的證明它。這是一個無法被證明的理論。
既然理論上存在同一時刻,那麼我們如何透過什麼區證明這一點呢,我們相信時間,但是時間的刻度可以無限細分,而我們能掌握,辨別的刻度是有限的,或者說,我們在最大限度的刻度上發像是相同的,就認為是同一時刻呢?
臥槽,這該是一個哲學問題吧。 。 。
什麼是同一時刻? time1==time2?如果允許無限細分的話你的計算機是沒辦法把time1和time2表示出來的,這取決於你的測量工具,你的工具是日曆,那麼time1 time2就只是日期,普通的表可以到秒,秒錶可以到毫秒級…
計算機的上的時間是離散的,也就是以機器週期T進行分割的,每個機器週期時長為T,對應處理器主頻的倒數1/f。 T作為CPU上最小時間單位,單一CPU上,每一個T只可能被其中的一個事件(程式)所佔有。也即如果你以T作為你所謂時刻的最小單位,那麼在單核CPU上兩個事件無法同時發生;多核上,每個T有可能被多個核同時指向,也就是兩個事件有可能同時發生。但要考慮,如果事件是獨佔性的(例如SMP架構的多核心CPU,在存取記憶體時是獨佔的)那麼就不可能同事發生;多機上,由於不同CPU採用不同的CPU時脈來源,你更難界定同一時刻,在確保T同步的情況下才有可能「同一個時刻兩個事件同時發生」。
其實所有這些,都取決於你對「同一時刻」的定義。 。 。