Android 角色时间戳
我是在用MediaRecorder进行录像时发生视频和音频不同步的问题,请教了一些人后感觉应该是没有时间戳,之前一直觉得时间戳就是给用户看的一个数据,查了一下发现不是的,以下是转载的。希望对大家实用:
首先向大家介绍什么是时间戳。
说得通俗一些,时间戳就是根据当前系统时间生成的一组随机数字。
时间戳一般作为对数据唯一性的一种推断根据。接下来向大家介绍一下我们能够怎样运用时间戳。
我们一定会碰到这种情况:银行A与银行B差点儿同一时候打开你的账户并看到你的账户上原有1000元存款。然后两家银行都想在你的账户上加上500元存款。那么。银行A便将1000元改成1500元,同一时候。银行B也将1000元改成了1500元。这样就糟糕了!
最后,你的银行账户上最后仅仅有1500元而不是理应的2000元,等于白白损失了500元!
这就是在没有锁定数据的情况下改动造成的严重问题。
然而,我们能够通过时间戳来巧妙解决问题。
我们来看思路:
- 在银行account表中建立时间戳字段timestamp。设定为文本类型varchar。
- 当银行A读取account表中的存款字段时,同一时候也读取时间戳字段,比方123456。
- 当银行A改动完存款数值后。进行存盘操作时。将先前读取的时间戳123456与当时表中的时间戳进行一次对照,假设一致,那么同意存盘。然后生成一个新的时间戳比方456789替换表中原有的时间戳123456。
这样做会带来什么优点呢?
我们再来看一開始的那个情况:银行A与银行B差点儿同一时候打开你的账户并看到你的账户上原有1000元存款,与此同一时候两个银行业同一时候读取了时间戳123456,接下来就有差别了。当银行A把1000元改成1500元后,存盘,系统将对照先前的时间戳123456是否与存盘时表中的时间戳一致。显然。如今应该是一致的,那么同意存盘,并生成新的时间戳456789替换了旧的时间戳123456。
接下去,B银行也将1000元改动成了1500元,存盘,系统对照先前的时间戳123456是否与存盘时表中的时间戳一致,发现先前的时间戳123456已经与如今的时间戳456789相异。系统拒绝存盘,要求刷新数据,那么数据刷新之后1000元已经由于之前A银行存入了500元而成为了1500元。那么B银行就会在1500元的基础上改为2000元,再次存盘,系统同意。这样,我们就避免了反复改动数据所带来的错误。
有些像绕口令,我希望我们都清楚我是什么意思~
Android 角色时间戳的更多相关文章
- Android中时间戳的详细解释
Android中时间戳的详细解释: (1).定义: 时间戳就是根据当前系统时间生成的一组随机数字. (2).作用: 作为对数据唯一性的一种判断依据.避免了重复修改数据所带来的错误! (3).应用: ( ...
- Android GetTimeAgo(时间戳转换几天前,几分钟前,刚刚等)
package com.studychen.seenews.util; import android.content.Context; /** * Created by tomchen on 2/26 ...
- Android 将时间戳转为代表"距现在多久之前"的字符串
public String getStandardDate(int dateTime) { StringBuffer sb = new StringBuffer(); long t = Long.pa ...
- Android 时间戳的转换
在Android应用中,经常会碰到后台的时间是时间戳而现实的需要今天什么时候,昨天什么时候,就像微博的时间显示一样.现在我上一个把时间戳转换的代码: public static String getT ...
- Android时间戳转换为标准Datetime(yyyy-MM-dd hh:mm:ss)格式
下列函数为实现过程,已经测试通过. /// <summary> /// Android时间戳转换为标准Datetime /// </summary> /// <param ...
- 【转】Android系统中Fastboot和Recovery所扮演的角色。
Android 刷机过程中 Fastboot 和 Recovery 的作用是什么? 自己在知乎的一篇回答,,现在翻出来放到博客,希望可以解答更多人的疑惑,抑或有什么理解上的错误,也望网友指出~ 今天恰 ...
- Android 时间戳简单转化
时间戳就是如1377216000000 这种格式我们在mysql数据库中会经常用到把时间转换成时间戳或把时间戳转换成日期格式了,下面我来介绍安卓中时间戳操作转换方法. 一.原理 时间戳的原理是把时间格 ...
- Date.parse()转化日期为时间戳,ios与Android兼容写法
把固定格式日期转化为时间戳: //格式化当地日期 new Date('2017-11-11 0:0:0') //结果为:Sat Nov 11 2017 00:00:00 GMT+0800 (中国标准时 ...
- Android java获取凌晨的时间戳
这两天有一个需求是查询用户匹配的推荐信息,包含一个有效时间段,以天为单位,0时0分0秒这种. 通常java中有两种方案: 第一种:Calendar.这种比较简单,也最常见.代码如下: Calendar ...
随机推荐
- String、StringBuffer与StringBuilder差分
的位置不言而喻.那么他们究竟有什么优缺点,究竟什么时候该用谁呢?以下我们从以下几点说明一下 1.三者在运行速度方面的比較:StringBuilder > StringBuffer > ...
- Leetcode_num13_Climbing Stairs
称号: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either cl ...
- 为什么国外程序员爱用苹果Mac电脑?(转)
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒.那么为什么专业人士也对 Mac 情有独钟呢?从个人使用 ...
- WorkFlow介绍及用法
WorkFlow介绍及用法 说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配 ...
- Wix打包系列(三)自定义Action(Custom Action)
原文:Wix打包系列(三)自定义Action(Custom Action) 3.1 关于Action 我们已经知道如何生成具有标准安装界面的安装程序了,Windows Installer按照我们的界面 ...
- Android开发系列(二十二):AdapterViewFlipper的功能和使用方法
AdapterViewFlipper继承了AdapterViewAnimator,它会显示一个View组件,能够通过showPrevious()和showNext()方法控制组件显示上一个.下一个组件 ...
- cocos2d-x ndk adt mac 路径配置
export PATH=/bin:/sbin:/usr/local/mysql/bin export PATH=$PATH:/Applications/MacVim-snapshot-68 expor ...
- AMDU恢复ASM磁盘组数据(測)
--umount ASMCMD> umoung -a asmdg commands: md_backup, md_restor lsattr, setattr ...
- Meet Apache Wicket
第一次接触Wicket,如此多的内容是文字,的原贴,希望大家指正 Meet Apache Wicket By JonathanLocke, original author of Wicket 乔纳森· ...
- UVALive - 4621 Cav 贪心 + 分析
题目大意:有一张洞穴地图,要在这个洞穴里面存放水,要求水不能碰到洞穴顶部.如今给出每一个位置的顶部位置和地面高度.问最多能够放多少水 解题思路:根据物理定理,每一段有水的连续区间,水位高度必须相等 所 ...