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

来源:互联网 发布:网页数据采集器 开源 编辑:程序博客网 时间:2024/06/11 10:55

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

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


#coding=utf-8import threadingfrom time import ctime,sleepdef 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===执行结束了。


0 0
原创粉丝点击