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 ...
随机推荐
- uva 1434 - YAPTCHA(数论)
题目链接:uva 1434 - YAPTCHA 题目大意:给定n和k,求题目中给定的式子S(n). 解题思路:威尔逊定理,x为素数时有,((x−1)!+1)%x==0,所以对于本题.假设3*k+7为素 ...
- Java 模拟队列(一般队列、双端队列、优先级队列)
队列: 先进先出,处理类似排队的问题,先排的.先处理,后排的等前面的处理完了,再处理 对于插入和移除操作的时间复杂度都为O(1).从后面插入,从前面移除 双端队列: 即在队列两端都能够insert和r ...
- Android 网络通信框架Volley基本介绍
Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...
- PPTP和L2TP的区别
PPTP是点到点的隧道协议,服务器端使用TCP 的1723端口,同时使用GRE协议,加密上使用MPPE.位于NAT后的客户端连接会有问题. L2TP是二层隧道VPN,使用IPsec 进行加密,服务器端 ...
- java中浮点数的比较(double, float)(转)
问题的提出:如果我们编译运行下面这个程序会看到什么? public static void main(String args[]){ System.out.println(0.05+0.01); Sy ...
- 嵌入式Linux下BOA网页server的移植
**************************************************************************************************** ...
- 泥鳅般的const(一个小Demo彻底搞清楚)
#include<stdio.h> int main(){ int a = 3; int b = 5; /* C标准库函数中最常见格式, 目的是保护參数, ...
- C# 使用Tuple传递多个参数
Tuple是基于.NET Framework 4.0 及以上版本才有的.微软称它为元组,如果有三个参数那就是三元组.如 Tuple(T1, T2, T3) Tuple的命名空间在 System 很短吧 ...
- ubuntu oracle jdk
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-javaX-i ...
- maven 项目中使用 jstl标签
在pom.xml文件下面增加如下的依赖包: <dependency> <groupId>javax.servlet</groupId> <artifactId ...