Python的time.strptime()的线程安全替代方案是什么?

24

我写的某些代码在使用time.strptime()时, 在一个线程内抛出了许多AttributeError异常。这似乎只发生在Windows上(而不是Linux),但是无论如何 - 经过搜索,似乎time.strptime()不被认为是线程安全的。

有没有更好的方法从字符串创建一个datetime对象?当前代码看起来像:

val = DateFromTicks(mktime(strptime(val, '%B %d, %Y')))

但是,由于它在线程中运行,因此会产生异常。

谢谢!

4个回答

28

根据错误报告,如果在创建线程之前调用strptime,则不会发生这种情况。我进行了一些测试,似乎证实了这一点。因此,只需在初始化期间进行任何对strptime的调用即可作为解决方法。


19

对于这个错误的另一种解决方法是,您可以手动导入_strptime和datetime。

import _strptime
from datetime import datetime

# then, in threaded block
datetime.strptime(date, format)

0
你尝试过手动同步吗?可能可以使用这个示例中的同步装饰器。

-3
当我使用import datetime时,datetime.datetime.strptime()不再抛出异常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接