关闭

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

标签: python多线程
1124人阅读 评论(0) 收藏 举报
分类:

在抓去员工主数据的时候按照工号从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===执行结束了。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11539次
    • 积分:291
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:2篇
    • 译文:0篇
    • 评论:2条
    文章分类