【Python学习笔记八】用threading.Thread实现多线程执行

工作中写自动化脚本时遇到一个问题:长按一个控件后,出现控件内容变化,然后校验内容。开始写的时候每次走到校验的步骤时,其实前面长按的动作已经结束了,校验总是失败。

在一番百度之后发现了threading.Thread多线程的内容,下面大致讲述一下,以作记录。

先看以下代码:

import threading
import time


def test1():
    m = 1
    for i in range(20):
        print(m)
        time.sleep(1)
        m = m+1


def test2():
    n = 1.0
    for i in range(20):
        print(n)
        time.sleep(1)
        n = n+1


t1 = threading.Thread(target=test1)
t2 = threading.Thread(target=test2)
t1.start()
t2.start()
time.sleep(15)
print("test")

代码中定义了两个方法,用于循环输出数字,为了区分其中一个输出的是小数。

然后通过 "threading.Thread(target=xxx)"实例化了一个线程对象,把方法名作为target传进去;后续通过threading.Thread().start()来启动线程。

上述代码段运行结果如下:

【Python学习笔记八】用threading.Thread实现多线程执行

 

  可以看到,在启动两个线程t1、t2之后,对应的方法一直在同步执行;而且在主文件执行到print("test")之后仍然在执行,直到执行完循环之后,整个脚本才停止。

 

另外使用threading.Thread实例化线程对象时,还可以通过args添加参数,来执行一些需要传递参数的方法,以及如何在线程执行过程中停止,这个还需要日后进一步学习,有时间会记录上来。

 

上一篇:python进程和线程


下一篇:Python开发之路 - 锁、信号量 、队列