11.5.2
同步與非同步的判斷
以乙個左迴圈的陣列為例,如圖
11.27
所示,圖中的
d0、 d1
、 d2…
為陣列中的資料塊(
注意,這只是陣列中資料塊的編號,並不代表資料的先後順序
)。下面我們就來看一看通過對哪些位置的資料順序進行判斷可以確定資料塊的異同步:
圖11.27 同步與非同步的判斷
1)d5
前的資料塊如果是
d4,為非同步;如果是
d2,為同步。
d5後的資料如果是
d6,為非同步;如果是
d3,為同步。
2)d7 前的資料如果是
d6,為非同步;如果是
d4,為同步。
3)d8 後的資料如果是
d9,為非同步;如果是
d6,為同步。
4)d6 後的資料塊如果是
d7,為非同步;如果是
d9,為同步。
可以看到,能夠用於判斷異同步的位置很多,但必須根據實際情況靈活運用,因為有時候某些位置的資料是無法確定前後順序的。總體來講,在乙個整迴圈內: u
一是看第乙個條帶寫滿後,下乙個資料塊的位置。 u
再就是看最後乙個條帶的第乙個資料塊之前的資料塊所在的位置。 u
中間的條帶則以校驗塊為界,檢視左右資料塊間的前後順序關係,如果校驗塊左側的資料順序先於校驗塊右側的資料,則為非同步,同否則為同步。
重現Redis 資料結構與物件(三)
整數集合 intset 是集合鍵的底層實現之一,當乙個集合只有整數值元素且元素不多時,redis使用整數集合作為集合鍵的底層實現。定義和實現分別在intset.h和intset.c中。typedef struct intset intset redis可以儲存的整數值型別為int16 t,int32...
Python重現資料結構 鍊錶的實現(雙鏈表)
雙向鍊錶 double linked list 也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。file name double linked list author 龍文漢 ver...
英雄大會原音重現之微軟中國研發集團芮勇博士
演講主題 it企業的創新戰略 題記 it iq talent ip innovation 非常奇妙的解釋,理解it產業將可以從智力加革新兩個方面角度去分析 一 創新 要點1 創新的模式 包括技術 流程 管理和經營等多維創新。要點理解 創新其實不一定完全是技術創新,而是多維的,有技術創新,有市場 經營...