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

原创 2016年05月31日 13:42:41

在抓去员工主数据的时候按照工号从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

Python 3基础教程38-threading和创建一个线程

前面几篇是介绍tkinter GUI编程的,我想这个有时间得出一个系列的,比较完整能够入门的教程。好了本文介绍threading模块,中文的意思是线程。要说线程,你第一反应应该是听说过进程。在电脑里,...

python3 threading thread 模块学习

转自:python3 threading thread 模块学习,保存在此以学习。 概述:        Thread 类描绘了一个单独运行的控制线程活动,我们有两种方式指定这种活动,通...

[python] 专题八.多线程编程之thread和threading

这篇文章主要是参考Wesley J. Chun的《Python核心编程(第二版)》书籍多线程部分,并结合我以前的一些实例进行简单分析。主要包括线程基础知识、thread模块、threading模块,及...

Python进阶(三十四)-Python3多线程解读

Python进阶(三十四)-Python3多线程解读线程讲解  多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理。 用户界面可以更加吸引人...

Python3多线程--多线程的2种启动方法

1、什么是多线程,为什么要使用多线程 多线程就是多个线程并行运行,例如播放音乐和计时两个线程同时运行。当然了,这是一种宏观并行,微观串行,CPU实际上是在两个线程上来回切换的。但是用于计算机的运行速度...

python多线程(2)--thread和threading模块的使用

thread模块 python不推荐使用这个模块,推荐更高级的threading。 thread模块和对象 函数 描述 start_new_thread(function,args) ...

Python 多线程 threading和multiprocessing模块

线程是一个进程的实体,是由表示程序运行状态的寄存器(如程序计数器、栈指针)以及堆栈组成,它是比进程更小的单位。 线程是程序中的一个执行流。一个执行流是由CPU运行程序代码并操作程序的数据所形成的。因...

Python:使用threading模块实现多线程(转)

综述 Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势...
  • willhuo
  • willhuo
  • 2015年10月25日 19:13
  • 267

Python:使用threading模块实现多线程(转)

综述 Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器...
  • koko66
  • koko66
  • 2015年04月29日 21:37
  • 302

Python:使用threading模块实现多线程

综述 Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python 3.4.3 使用threading模块进行多线程编码实现
举报原因:
原因补充:

(最多只允许输入30个字)