1 默认启动主线程
一般的,程序默认执行只在一个线程,这个线程称为主线程,例子演示如下:
导入线程相关的模块 threading
:
import threading
threading的类方法 current_thread()
返回当前线程:
t = threading.current_thread()
print(t) # <_mainthread started>
所以,验证了程序默认是在MainThead
中执行。
t.getName()
获得这个线程的名字,其他常用方法,getName()
获得线程id
,isAlive()
判断线程是否存活等。
print(t.getName()) # MainThread
print(t.ident) # 139908235814720
print(t.isAlive()) # True
以上这些仅是介绍多线程的背景知识
,因为到目前为止,我们有且仅有一个"干活"的主线程
2 创建线程
创建一个线程:
my_thread = threading.Thread()
创建一个名称为my_thread
的线程:
my_thread = threading.Thread(name='my_thread')
创建线程的目的是告诉它帮助我们做些什么,做些什么通过参数target
传入,参数类型为callable
,函数就是可调用的:
def print_i(i):
print('打印i:%d'%(i,))
my_thread = threading.Thread(target=print_i,args=(1,))
my_thread
线程已经全副武装,但是我们得按下发射按钮,启动start(),它才开始真正起飞。
my_thread().start()
打印结果如下,其中args
指定函数print_i
需要的参数i,类型为元祖。
打印i:1
至此,多线程相关的核心知识点,已经总结完毕。但是,仅仅知道这些,还不够!光纸上谈兵,当然远远不够。
接下来几天,咱们一起聊聊应用多线程编程,最本质的一些东西。我会通过小例子通俗易懂的解释,欢迎到时关注。
轻触这里,给我留言
近期小例子:闰年判断&字符型时间互转;打印2020年日历;装饰器的最通俗理解,不容错过!;pyecharts绘制词云图;使用pillow处理图片,很简单!;slice对象的应用举例;一行代码优化异常输出;函数的五类参数使用例子;绘制时间线轮播图;python参数类型使用总结;绘制水球图;lambda参数之坑;Python绘制仪表盘;参数的默认值陷阱!;chain串联多个迭代对象;机器学习中会涉及到的随机选择样本;使用namedtuple的小例子; pkuseg 做分词,超级nice~; 写一个装饰器:统计异常发生次数和时间;对象可被调用的实现方法;求任意维度两点间距离; 两种合并字典的方法对比; 计算和聚合同时进行; groupby 分组; plotly画柱状图+折线图;
有收获,点个在看