理解一個算法最快,最深刻的做法,我覺著可能是自己手動實現(xiàn),雖然項目中不用自己實現(xiàn),有已經(jīng)封裝好的算法庫,供我們調(diào)用,我覺著還是有必要自己親自實踐一下。
這里首先說明一下,python這種動態(tài)語言,對不熟悉的人可能看著比較別扭,不像java那樣參數(shù)類型是固定的,所以看著會有些蛋疼。這里環(huán)境用的是python2.7。
class Message: # command MSG_ACCEPTOR_AGREE = 0 # 追隨者約定 MSG_ACCEPTOR_ACCEPT = 1 # 追隨者接受 MSG_ACCEPTOR_REJECT = 2 # 追隨者拒絕-網(wǎng)絡(luò)不通 MSG_ACCEPTOR_UNACCEPT = 3 # 追隨者網(wǎng)絡(luò)通-不同意 MSG_ACCEPT = 4 # 接受 MSG_PROPOSE = 5 # 提議 MSG_EXT_PROPOSE = 6 # 額外提議 MSG_HEARTBEAT = 7 # 心跳,每隔一段時間同步消息 def __init__(self, command=None): self.command = command # 把收到的消息原原路返回,作為應(yīng)答消息 def copyAsReply(self, message): # 提議ID #當(dāng)前的ID #發(fā)給誰 #誰發(fā)的 self.proposalID, self.instanceID, self.to, self.source = message.proposalID, message.instanceID, message.source, message.to self.value = message.value # 發(fā)的信息