在 Python 3 中长时间time.sleep(3**3**3) (如运行time.sleep(3**3**3) )时,程序返回一个 OverflowError 并带有错误消息“时间戳太大而无法转换为 C _PyTime_t”。 我能睡的最长时间是多少?

#1楼 票数:4 已采纳

该值应为 9223372036.854775,即“计算中 64 位有符号整数的最大值”。 请参阅这篇维基百科文章

PEP 564 中提到_PyTime_t

CPython 私有“pytime”C API 处理时间现在使用新的 _PyTime_t 类型:简单的 64 位有符号整数 (C int64_t)。 _PyTime_t 单元是一个实现细节,而不是 API 的一部分。 该单位目前为 1 纳秒。

>>> 2 ** 63 / 10 ** 9
9223372036.854776
>>> time.sleep(9223372036.854775)
^CTraceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyboardInterrupt
>>> time.sleep(9223372036.854776)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: timestamp too large to convert to C _PyTime_t
>>> 

#2楼 票数:0

我从线程库文档中找到了以下内容:

threading.TIMEOUT_MAX

阻塞函数(Lock.acquire()、RLock.acquire()、Condition.wait()等)的超时参数允许的最大值。 指定大于此值的超时将引发溢出错误。

3.2 版中的新功能。

在我的系统上,使用 python 3.8:

>>> import threading
>>> threading.TIMEOUT_MAX
9223372036.0

我没有看到它在threading.TIMEOUT_MAXtime.sleep()参数的最大值的任何地方都没有明确指定,但它似乎是正确的值(或“关闭”,出于某种原因),用相同的约束构造.

  ask by Eric Stdlib translate from so

未解决问题?本站智能推荐:

1回复

Python 中的 e-0 是什么意思? [复制]

这个问题在这里已经有了答案: 打印浮点值时如何抑制科学记数法? (14 个回答) 去年关闭。
1回复

Python:如果检测到 X 超过 T 秒:

我正在寻找知识。 我是 python 新手,需要用相机 Gravity: HuskyLens 做一个项目。 它允许您在检测到人脸时显示块(在人脸周围,概括地说是跟踪)而且我想,当我检测到一个块时,知道它是否被检测到超过 7 秒。 我不知道它是否足够清楚,我对任何可以让我进步的信息感兴趣 ps
1回复

Gunicorn Worker超时时间戳太大,无法转换为C _PyTime_t

我试图用一个工人用gunicorn启动我的烧瓶应用程序,但它返回此错误 这是我用来开枪的命令 这是堆栈跟踪, 我读了几个问题,但所有人都说要减少超时,而我已经减少了。 我不为什么它不起作用。 谢谢!
1回复

在与系统时钟同步的python中每5分钟运行一次函数的最佳方法是什么?

我想每 5 分钟运行一次函数并让它与时钟同步。 如果我使用 time.sleep(60*5),时间开始漂移,因为我的函数增加了一点处理时间。 这是运行与时钟同步的函数的好方法还是在 python 中有更好的方法?
1回复

如何在Python中以下列格式“2017-06-06T07:00:00.000Z”获取日期?

我想在Python中以下列格式“2017-06-06T07:00:00.000Z”获取当前日期/时间。 我有JSON包含这个日期格式,我想模仿这个。 不知道这是标准(ISO)格式还是我如何获得这种格式? 我在StackOverflow上找不到这种格式。
2回复

Python中矩阵乘法的最快方法是什么?

我正在用 Python 编写一个以速度为主要驱动力的应用程序。 在优化我的代码时,我发现主要瓶颈是用于计算的代码 在我的代码中,这个矩阵乘法计算为 POW = np.arange(4) y = C @ (x ** POW) 我试图用不同的方法(例如, for循环等),但现在这是我找到的最快捷方
1回复

Pandas/Python:在时间序列中查找缺失值,为缺失值插入新时间戳和 nan 值 [重复]

这个问题在这里已经有了答案: Pandas asfreq 每周频率(1 个回答) 去年关闭。 我创建了以下数据帧
1回复

C++ 中的clock_gettime() 和python 中的time.time() 是否等效?

我正在使用 boost python 并尝试测量从 C++ 切换到 python 的延迟,反之亦然。 但我认为我做错了,我通过clock_gettime() ( t0 ) 在 C++ 中获取时间并将其作为参数传递给 python 函数,并从该函数中调用time.time() ( t1 ) 来获取时间