“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情”
0 环境
- 编辑器:webstorm或者vscode
- 系统版本:windows10
- 编辑器版本:最新
- 浏览器:谷歌
1 参考文档
[参考教程https://www.geeksforgeeks.org/multithreading-python-set-1/)
2 前言
如果对多线程有兴趣,如下图所示,可以看上面的那个参考教程,写的比较清楚。
3 怎么实现一个线程
首先引/导入标准库。
import threading
然后一个新的线程,再创建一个Thread对象,这里需要知道的两个参数:1、target:你要该线程执行的函数。2、args:给线程要执行函数传递参数。
import threading
def demo():
print("hello world")
thread = threading.Thread(target=demo)
print(f'thread --> {thread}')
怎么跑这个thred呢,使用start方法来启动,写法就是thread.start(),效果如下图:
有启动就有退出/停止,正常是线程执行完毕后,会自动关闭,但是遇到一些情况需要手动中止呢,一种利用利用setDaemon(True),还有一种就是强行杀死进程,使用inspect模块和ctypes模块,获取它的id标识,然后关闭它。
现在需要执行有入参的函数,args就可以用到了,如下图:
import threading
# 有参情况
def demo1(a):
print(f"hello world,{a}")
for item in ['第一天', '第二天', '第n天']:
thread = threading.Thread(target=demo1, args=(item,))
thread.start()
4 常见的线程参数
比如需要知道当前线程是否还存活,记录它的线程id和名字。
5 小结
想让线程跑起来,先导入标准库,创建
threading.Thread(xxx),并且在括号中target一定别忘加了,它对应要启动的函数,假如你的函数有入参,并且你也想传参,那么args也要加上,传值进去就行,对了,它是一个元组,别忘了。还要了解一下,常见的线程参数,说不定以后有可能遇到。