budaha的秘密花园

北冥真的有鱼吗?

Python 3.4.3 使用threading模块进行多线程编码实现

在抓去员工主数据的时候按照工号从000001到100000去公司系统抓取,发现运行实在是太慢了。1分钟只有6个人。。。

搜索以后发现建议使用多线程同时进行。那么就改用多线程。加速不少。学习demo如下:


#coding=utf-8
import threading
from time import ctime,sleep


def func1(var):
    for i in range(3):
        print ("%s===func1 running %s\n" %(ctime(),var))
        sleep(5)

def func2(var):
    for i in range(5):
        print ("%s===func2 running %s\n"   %(ctime(),var))
        sleep(1)

threads = []
thr1 = threading.Thread(target=func1,args=(u'线程1',))
threads.append(thr1)
thr2 = threading.Thread(target=func2,args=(u'线程2',))
threads.append(thr2)

thr3 = threading.Thread(target=func2,args=(u'线程3',))
threads.append(thr3) 

if __name__ == '__main__':
    print ("%s===执行开始了。\n" %ctime())
    for t in threads:
        t.setDaemon(True)
        t.start()
        
    for t in threads:
        t.join()        
    #join()的作用是,在子线程完成运行之前,阻塞父线程。
    print ("%s===执行结束了。\n" %ctime())



运行结果看了就很好分析理解了:

Tue May 31 13:36:09 2016===执行开始了。


Tue May 31 13:36:09 2016===func1 running 线程1
Tue May 31 13:36:09 2016===func2 running 线程2
Tue May 31 13:36:09 2016===func2 running 线程3






Tue May 31 13:36:10 2016===func2 running 线程2
Tue May 31 13:36:10 2016===func2 running 线程3




Tue May 31 13:36:11 2016===func2 running 线程2
Tue May 31 13:36:11 2016===func2 running 线程3




Tue May 31 13:36:12 2016===func2 running 线程2


Tue May 31 13:36:12 2016===func2 running 线程3


Tue May 31 13:36:13 2016===func2 running 线程3


Tue May 31 13:36:13 2016===func2 running 线程2


Tue May 31 13:36:14 2016===func1 running 线程1


Tue May 31 13:36:19 2016===func1 running 线程1


Tue May 31 13:36:24 2016===执行结束了。


阅读更多
版权声明:本文为博主budaha的私人秘密花园,转载粘贴请不要注明来源http://blog.csdn.net/budaha https://blog.csdn.net/budaha/article/details/51545027
文章标签: python 多线程
个人分类: Python
上一篇苹果MACBOOK SAP GUI JAVA版本配置 可以带router
下一篇Python3.4-字典笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭