+ -
当前位置:首页 → 问答吧 → 关于PHP time时间的问题!?

关于PHP time时间的问题!?

时间:2013-05-17

来源:互联网

在存记录的时间中,喜欢用time()函数
有时候偶尔会出现time()时间不准的问题
比如在某次并发中,依次向数据库插入记录
但是,某条记录的时间竟然小于前面某条插入的记录时间
很搞不明白,是这个函数不稳定么?

作者: 除美灭日平韩   发布时间: 2013-05-17

这也是我第三次遇到这样的情况了

作者: 除美灭日平韩   发布时间: 2013-05-17

time()函数也就调用系统的time()函数,所以归根究底就要看系统的time()函数了。

作者: liexusong   发布时间: 2013-05-17

liexusong 发表于 2013-5-17 12:04
time()函数也就调用系统的time()函数,所以归根究底就要看系统的time()函数了。 ...

只是偶尔,都是同样的一段代码,难道是系统不稳定?

作者: 除美灭日平韩   发布时间: 2013-05-17

那就是并发时某个模块被阻塞了,比如有表锁,导致获取的时间所在的语句执行延迟。

作者: iminto   发布时间: 2013-05-17

iminto 发表于 2013-5-17 16:18
那就是并发时某个模块被阻塞了,比如有表锁,导致获取的时间所在的语句执行延迟。 ...

这个比较高深了。。。

作者: 除美灭日平韩   发布时间: 2013-05-17

这跟time没有直接关系,你使用time获取时间戳之后也许后面的操作执行时间比较长,导致mysql_query提交的时候比另一个操作慢了,这样你的time虽然小也有可能就排前面去了

作者: qxhy123   发布时间: 2013-05-18

qxhy123 发表于 2013-5-18 20:24
这跟time没有直接关系,你使用time获取时间戳之后也许后面的操作执行时间比较长,导致mysql_query提交的时候 ...

大仙可不可以详细介绍一下过程,比如给一段代码分析一下。

作者: lee_001   发布时间: 2013-05-20

lee_001 发表于 2013-5-20 15:01
大仙可不可以详细介绍一下过程,比如给一段代码分析一下。

简单点儿的比如
$time = time();
sleep(4);//执行时间较长的操作,whatever
//入库

这种就很容易出现这种问题

作者: qxhy123   发布时间: 2013-05-20

qxhy123 发表于 2013-5-20 15:04
简单点儿的比如
$time = time();
sleep(4);//执行时间较长的操作,whatever

如果并发多造成的阻塞是不是会影响到别的用户的插入。其实不了解的是高并发的情况下阻塞如何处理的是否是类似于队列的那种形式。还有一个就是php操作mysql,高并发下造成的阻塞出现在php这块还是mysql这部分的可能性大,还有就是介绍一些这部分是如何处理的有哪些不同。例如mysql 造成阻塞了,是不是php必然要阻塞

作者: lee_001   发布时间: 2013-05-20

qxhy123 发表于 2013-5-20 15:04
简单点儿的比如
$time = time();
sleep(4);//执行时间较长的操作,whatever

如果并发多造成的阻塞是不是会影响到别的用户的插入。其实不了解的是高并发的情况下阻塞如何处理的是否是类似于队列的那种形式。还有一个就是php操作mysql,高并发下造成的阻塞出现在php这块还是mysql这部分的可能性大,还有就是介绍一些这部分是如何处理的有哪些不同。例如mysql 造成阻塞了,是不是php必然要阻塞

作者: lee_001   发布时间: 2013-05-20

不错,大家继续啊

作者: 除美灭日平韩   发布时间: 2013-05-21

插入的问题把

作者: 弱水寒   发布时间: 2013-05-21