通过一个简单的例子理解 Python 中的多线程

关于进程和线程的概念可以看这篇文章:
https://blog.csdn.net/ThinkWon/article/details/102021274

什么时候需要多线程编程?简单来说就是一个程序里面有比较耗时间的操作,你希望先让它单独跑着,直接开始进行下一步的操作(Python默认情况下会按顺序一步步完成)。看一个简单的例子:

import threading
import time

def looper(alert):
	while True:
		print(alert)
		time.sleep(3)

th = threading.Thread(target=looper, args=('hair -1 !', ))
th.start()

可以直接在命令行终端运行这一段代码,就会开始了一个线程,它属于 Python 这个进程。looper 这里是一个死循环,每个三秒在终端打印一段字符。运行后如下:

在这里插入图片描述
可以看到 looper 函数已经在一个单独的线程里面跑起来了,这时候 Python 解释器还可以在新的线程里面处理新的操作,比如算一下 1+1 啥的。只要进程没结束,这个线程也会一直运行,直到完成。这个时候如果输入 quit() 命令,会退出 Python 终端,但是循环还是会继续运行,查看任务管理器会发现 Python 进程依然存在。但是 cmd 已经不允许你执行任何命令了,可以理解为 Python 残留了一个线程(因为上例中是一个死循环)。强行关闭 cmd 窗口之后,Python 进程才会结束。

通过这个例子就可以很好地理解它的逻辑,还是很有实际应用价值的。例如在机器学习中,我们可能需要对数据执行不同的特征工程,应用于不同的模型,来对比性能。就可以通过多个线程来并行地执行,加快处理速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值