线程
在程序里一个执行路线就叫做线程,线程是程序执行的最小单位.
多线程
多线程类似于同时执行多个不同程序,多线程运行有如下优点:
使用线程可以把占据长时间的程序中的任务放到后台去处理。
程序的运行速度可能加快
在一些等待的任务实现上如用户输入、文件读写和网络收发数据等。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。
Python3 通过两个标准库 _thread 和 threading 提供对线程的支持,由于_thread只是为了兼容python2的thread模块,所以推荐使用threading模块实现多线程。
threading提供了如下方法:
- run(): 用以表示线程活动的方法。
- start():启动线程活动。
- join([time]): 等待至线程中止。
- isAlive(): 返回线程是否活动的。
- getName(): 返回线程名。
- setName(): 设置线程名。
Python中使用线程有两种方式:函数或者用类来包装线程对象。
函数方式:
导入threading包
对象名= threading.Thread(target = 函数名) 创建线程对象
对象名.start() 创建线程
注:由于代码执行过快,为了显示效果,使用sleep延时执行。
代码:
import threading
import timedef dog(num):for i in range(num):print("dog%d" % i)time.sleep(0.5)def cat(num):for i in range(num):print("cat%d" % i)time.sleep(0.5)def main():"""创建启动线程"""t_dog = threading.Thread(target=dog, args=(5,))t_cat = threading.Thread(target=cat, args=(6, ))t_dog.start()t_cat.start()if __name__ == '__main__':main()
注意事项:
像这里的
t_dog = threading.Thread(target=dog, args=(5,))
args=(5,) 中的5后面的逗号要记得加上,如果调用多线程的函数不用传入参数就不用写5,;如果有就要加上逗号!!!否则就会出错