关于python多线程效率

在网上看到python多线程

今天尝试一下,先贴源码

import cv2
from time import ctime


def music(func):
    for i in range(100):
        img = cv2.imread(fn, 2)
      #  print "I was at the %s! %s" %(func,ctime())

def move(func):
    for i in range(100):
        img2 = cv2.imread(fn2, 2)
      #  print "I was at the %s! %s" %(func,ctime())

threads = []
t1 = threading.Thread(target=music,args=(u'imread1',))
threads.append(t1)
t2 = threading.Thread(target=move,args=(u'forshow1',))
threads.append(t2)

if __name__ == '__main__':
    try: fn = sys.argv[1]
    except:fn = 'E:\\5.bmp'
    fn2 ='E:\\6.bmp'
    print "1 was start at the %s" %(ctime())
    for t in threads:
        t.setDaemon(True)
        t.start()
    t.join()
    print "1 was end at the %s" %(ctime())
    print "2 was start at the %s" %(ctime())
    music(u'imread2')
    move(u'imread2')
    print "2 was end at the %s" %(ctime())
    print "all over %s" %ctime()

最后结果如下图,可以发现多线程效率提高还是有的,真是线程本身的开销也较大,多开一个线程其效率提高在30%左右。并不像网上所说的是鸡肋,原因还在探究,但是windows对线程有自动优化,现在还不清楚,有待继续深入



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值