Android 角色时间戳
? ? ? ? 我是在用MediaRecorder進(jìn)行錄像時(shí)發(fā)生視頻和音頻不同步的問題,請(qǐng)教了一些人后感覺應(yīng)該是沒有時(shí)間戳,之前一直覺得時(shí)間戳就是給用戶看的一個(gè)數(shù)據(jù),查了一下發(fā)現(xiàn)不是的,以下是轉(zhuǎn)載的。希望對(duì)大家實(shí)用:
首先向大家介紹什么是時(shí)間戳。
???說得通俗一些,時(shí)間戳就是根據(jù)當(dāng)前系統(tǒng)時(shí)間生成的一組隨機(jī)數(shù)字。
時(shí)間戳一般作為對(duì)數(shù)據(jù)唯一性的一種推斷根據(jù)。接下來向大家介紹一下我們能夠怎樣運(yùn)用時(shí)間戳。
???我們一定會(huì)碰到這種情況:銀行A與銀行B差點(diǎn)兒同一時(shí)候打開你的賬戶并看到你的賬戶上原有1000元存款。然后兩家銀行都想在你的賬戶上加上500元存款。那么。銀行A便將1000元改成1500元,同一時(shí)候。銀行B也將1000元改成了1500元。這樣就糟糕了!
最后,你的銀行賬戶上最后僅僅有1500元而不是理應(yīng)的2000元,等于白白損失了500元!
這就是在沒有鎖定數(shù)據(jù)的情況下改動(dòng)造成的嚴(yán)重問題。
然而,我們能夠通過時(shí)間戳來巧妙解決問題。
???我們來看思路:
???這樣做會(huì)帶來什么優(yōu)點(diǎn)呢?
???我們?cè)賮砜匆婚_始的那個(gè)情況:銀行A與銀行B差點(diǎn)兒同一時(shí)候打開你的賬戶并看到你的賬戶上原有1000元存款,與此同一時(shí)候兩個(gè)銀行業(yè)同一時(shí)候讀取了時(shí)間戳123456,接下來就有差別了。當(dāng)銀行A把1000元改成1500元后,存盤,系統(tǒng)將對(duì)照先前的時(shí)間戳123456是否與存盤時(shí)表中的時(shí)間戳一致。顯然。如今應(yīng)該是一致的,那么同意存盤,并生成新的時(shí)間戳456789替換了舊的時(shí)間戳123456。
接下去,B銀行也將1000元改動(dòng)成了1500元,存盤,系統(tǒng)對(duì)照先前的時(shí)間戳123456是否與存盤時(shí)表中的時(shí)間戳一致,發(fā)現(xiàn)先前的時(shí)間戳123456已經(jīng)與如今的時(shí)間戳456789相異。系統(tǒng)拒絕存盤,要求刷新數(shù)據(jù),那么數(shù)據(jù)刷新之后1000元已經(jīng)由于之前A銀行存入了500元而成為了1500元。那么B銀行就會(huì)在1500元的基礎(chǔ)上改為2000元,再次存盤,系統(tǒng)同意。這樣,我們就避免了反復(fù)改動(dòng)數(shù)據(jù)所帶來的錯(cuò)誤。
???有些像繞口令,我希望我們都清楚我是什么意思~
總結(jié)
以上是生活随笔為你收集整理的Android 角色时间戳的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.3.2 java程序的运行机制和jv
- 下一篇: Android 获取 屏幕状态栏高度和标