Python多线程下的_strptime问题

由于Python的datetime和time中的_strptime方法不支持多线程,运行时会报错:

import datetime
import thread
import time

def f():
    datetime.datetime.strptime("20100101","%Y%m%d")

for _ in xrange(3):
    thread.start_new_thread(f, ())
time.sleep(3)

Unhandled exception in thread started by <function f at 0x2b52c24e66e0>
Traceback (most recent call last):
  File "test.py", line 7, in f
    datetime.datetime.strptime("20100101","%Y%m%d")
AttributeErrorUnhandled exception in thread started by <function f at 0x2b52c24e66e0>:
Traceback (most recent call last):
  File "test.py", line 7, in f
_strptime
    datetime.datetime.strptime("20100101","%Y%m%d")
AttributeError: _strptime

参考 http://bugs.python.org/issue7980

在源文件中可以fix这个bug,不过对于用户来说,还是在使用的时候加锁吧。。

c = threading.RLock()
def f():
    with c:
        datetime.datetime.strptime("20100101","%Y%m%d")

Python多线程下的_strptime问题的更多相关文章

  1. python 多线程两种实现方式,Python多线程下的_strptime问题,

    python 多线程两种实现方式 原创 Linux操作系统 作者:杨奇龙 时间:2014-06-08 20:24:26  44021  0 目前python 提供了几种多线程实现方式 thread,t ...

  2. Python多线程下存在_strptime的问题

    由于Python的datetime和time中的_strptime方法不支持多线程,运行时会报错:AttributeError: _strptime code: # -*- coding:utf-8 ...

  3. python多线程不能利用多核cpu,但有时候多线程确实比单线程快。

    python 为什么不能利用多核 CPU  GIL 其实是因为在 python中有一个 GIL( Global Interpreter Lock),中文为:全局解释器锁.  1.最开始时候设计GIL是 ...

  4. 为什么在Python里推荐使用多进程而不是多线程?(为什么python多线程无法增加CPU使用率?)

    最近在看Python的多线程,经常我们会听到老手说:“Python下多线程是鸡肋,推荐使用多进程!”,但是为什么这么说呢? 要知其然,更要知其所以然.所以有了下面的深入研究: 首先强调背景:     ...

  5. python 多线程学习小记

    python对于thread的管理中有两个函数:join和setDaemon setDaemon:如果在程序中将子线程设置为守护线程,则该子线程会在主线程结束时自动退出,设置方式为thread.set ...

  6. python 类变量 在多线程下的共享与释放问题

    最近被多线程给坑了下,没意识到类变量在多线程下是共享的,还有一个就是没意识到 内存释放问题,导致越累越大 1.python 类变量 在多线程情况 下的 是共享的 2.python 类变量 在多线程情况 ...

  7. python多线程场景下print丢失

    python多线程情况下,print输出会出现丢失的情况,而logging模块的日志输出不会. 以下是示例代码,多运行几次就会发现这个有意思的现象 # coding:utf-8 import thre ...

  8. python 类变量 在多线程下的共享与释放问题-乾颐堂

    最近被多线程给坑了下,没意识到类变量在多线程下是共享的,还有一个就是没意识到 内存释放问题,导致越累越大 1.python 类变量 在多线程情况 下的 是共享的 2.python 类变量 在多线程情况 ...

  9. python多线程网络编程

    背景 使用过flask框架后,我对request这个全局实例非常感兴趣.它在客户端发起请求后会保存着所有的客户端数据,例如用户上传的表单或者文件等.那么在很多客户端发起请求时,服务器是怎么去区分不同的 ...

随机推荐

  1. c#关于EXCEL导入数据库的做法

    以下例子转载:互联网 先在类中定义一个方法名为ExecleDs的方法,用于将Excel表里的数据填充到DataSet中,代码如下 public DataSet ExecleDs(string file ...

  2. html 5 新增标签及简介

    作为下一代Web技术的代表,HTML5概念在近些年尤其火热.据了解,HTML5受到垂青最直接的原因就是其跨平台性,除此之外,它不仅仅可以用于表示Web内容,还可能将Web带入一个广阔的生态平台. 下面 ...

  3. mfc主窗口添加背景图片后,如何实现在背景图片上输出文字

    1.若是文档视图程序的话,在视图类的OnDraw(CDC* pDC)函数中调用pDC->TextOut()函数,就像平常输出文字一样.若是嫌文字的背景颜色破坏了图像,可以在输出文字之前调用pDC ...

  4. orcad10.5启动加速

    OrCAD不知道怎么滴,启动速度慢的让人崩溃!30秒算快的,有时候甚至几分钟,要么需要连续开N次才打开,苦啊!!经过网上无数文章的洗礼,无数次的尝试,终于得出一种特效方法! 原因:OrCAD启动时在电 ...

  5. 谈谈Facebook的聊天系统架构

    今天看到一份 Facebook 公司 2009 年的 Slideshow, 介绍它的聊天系统架构, 其中的一张图结构非常清晰, 所以我对这张图谈谈我的看法. Web Tier: 用 PHP 开发, 聊 ...

  6. android面试题之二

    六.android 中的动画有哪几种,它们的特点和区别是什么 ? 逐帧动画和补间动画. 逐帧动画:是传统的动画播放方式,指定每一帧的内容和停留时间,然后顺序地播放排列好的图片,类似电影. 补间动画:给 ...

  7. 一组开源 HTML5 Apps

    一组用"画app吧"开发的 HTML5 Apps,默认使用FirefoxOS设备,其实它们都可以在像Android/IPhone/WindowsPhone8/BlackBerry/ ...

  8. 制作Orcad的变种BOM(Variant BOM)

    通常在Orcad中画的原理图并不仅仅是用于一款产品.比如一个控制器原理图,可能相应着很多款子产品线,而这些子产品线之间的差别就是通讯口组件不同,少焊几个芯片,或者仅仅是少焊几个电阻. 可是这样交付生产 ...

  9. linux添加、修改环境变量

    比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.In shell: setenv <path_to_append>: $ENVNAME setenv PATH ...

  10. OpenGL ES 如何能看到一个物体内部和象3dmax中能只显示网格线

    上一篇 OpenGL ES 正反面设置指令 中分析了正反面的判区方法,那么正反面有什么用呢?接下来我们就要引入一个叫做背面消除的概念.在3dmax中有个选项,当你用挤压修改器挤出一个中空的长方体时,在 ...