什么是python多线程呢?简单的理解就是原来是一个工厂里面有一个工人在干活儿,现在是一个工厂里面有好多个工人在干活儿,那么这样子是不是就提高了工作效率,这就是资本家,啊,不,这就是​​python​​多线程。


python爬虫-22-python多线程详解(1)_多线程

1、未使用python多线程技术

都说多线程是效率的提高,那么我们来做个对比吧,首先来看看未使用多线程之前是什么样子的吧,直接上代码:

from datetime import datetime
import time


def Eating():
for i in range(3):
print("正在吃第{}顿饭".format(i))
time.sleep(1)


def Studying():
for i in range(3):
print("运维家第{}篇".format(i))
time.sleep(1)


def Total():
Start = datetime.now()
Eating()
Studying()
Stop = datetime.now()
Total_time = Stop - Start
print("该代码运行时间为:{}".format(Total_time))


if __name__ == '__main__':
Total()

运行结果如下:

正在吃第0顿饭
正在吃第1顿饭
正在吃第2顿饭
运维家0颗心
运维家1颗心
运维家2颗心
该代码运行时间为:0:00:06.035070

从上面的结果来看,他运行了​​6​​秒钟,那么我们使用多线程之后看看呢;

2、使用python多线程技术

import threading
from datetime import datetime
import time


def Eating():
for i in range(3):
print("正在吃第{}顿饭".format(i))
time.sleep(1)


def Studying():
for i in range(3):
print("运维家{}颗心".format(i))
time.sleep(1)


def Total():
Start = datetime.now()
# Eating()
# Studying()
T1 = threading.Thread(target=Eating) # 创建线程
T2 = threading.Thread(target=Studying)
T1.start() # 启动线程
T2.start()
T1.join() # 在该线程结束之前,主线程一直处于等待状态
T2.join()
Stop = datetime.now()
Total_time = Stop - Start
print("该代码运行时间为:{}".format(Total_time))


if __name__ == '__main__':
Total()

运行结果如下:

正在吃第0顿饭
运维家0颗心
正在吃第1顿饭
运维家1颗心
正在吃第2顿饭
运维家2颗心
该代码运行时间为:0:00:03.023333

从上面我们就可以看到他的最直观的时间变化,本来一个人干的活儿,现在通过​​python​​​的多线程​​threading​​技术,变成了两个人干,这样子的话就减少了一半的时间。

3、python查看线程数量和当前线程的名字

方法:

threading.enumerate()  # 查看线程数量
threading.current_thread() # 查看当前线程的名字

放到上面的代码中之后,总体代码如下:


剩余内容请转至VX公众号 “运维家” ,回复 “183” 查看。


------ “运维家” ,回复 “183”  ------

------ “运维家” ,回复 “183”  ------

------ “运维家” ,回复 “183”  ------


系统运维工程师,运维工程师技能要求,成都运维工程师驻场开发收费标准,t3网络运维工程师,运维工程师社会需求,运维工程师修炼手册;

oppo高级运维工程师社招,运维工程师员招聘要求,中级运维工程师技术水平,大数据运维工程师月薪多少,运维工程师的个人发展计划,应届生面试运维工程师穿着;

系统运维运维工程师,中国移动网络运维工程师笔试,徐州市苏宠集团运维工程师待遇,云南运维工程师培训班;

监控系统运维工程师,高铁运维工程师是正式工 吗,郑卅软件运维工程师招聘,运维助理工程师好不好。