线程安全相当于python的time.strptime()?

时间:2010-03-11 17:33:30

标签: python

在线程中使用time.strptime()时,我写的东西抛出了很多AttributeError个异常。这似乎只发生在Windows上(不是在Linux上),但无论如何,在'googling中,似乎time.strptime()不被认为是线程安全的。

有没有更好的方法从字符串创建日期时间对象?当前代码如下:

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

但是,这会产生异常,因为它在一个线程内运行。

谢谢!

4 个答案:

答案 0 :(得分:28)

根据bug report,如果在创建线程之前调用strptime一次,则不会发生这种情况。我做了一些测试,似乎证实了这一点。因此,只需在初始化期间调用strptime作为解决方法。

答案 1 :(得分:17)

针对此错误的另一种解决方法,您只需手动导入_strptime以及日期时间

import _strptime
from datetime import datetime

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

答案 2 :(得分:0)

您是否尝试过自己手动同步?可能使用this recipe中的同步装饰器。

答案 3 :(得分:-3)

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