Python并发编程之创建多线程的几种方法(二)
2018-05-12 15:35
609 查看
大家好,
今天的内容会比较基础,主要是为了让新手也能无障碍地阅读,所以还是要再巩固下基础。学完了基础,你们也就能很顺畅地跟着我的思路理解以后的文章。
学会使用类创建多线程
多线程:必学函数讲解
经过总结,Python创建多线程主要有如下两种方法:
函数
类
接下来,我们就来揭开多线程的神秘面纱。
线程函数名:要放置线程让其后台执行的函数,由我们自已定义,注意不要加
线程函数的参数:线程函数名所需的参数,以元组的形式传入。若不需要参数,可以不指定。
举个例子
可以看到输出
是不是超级简单呢?别急,下面也是一样简单。
首先,我们要自定义一个类,对于这个类有两点要求,
必须继承
必须覆写
这里的
来看一下例子
为了方便对比,
当然结果也是一样的。
其实不然,上面我们的
不过,你也不必担心,在后面的章节中,我会带着大家一起来探讨一下,都有哪些难题,应该如何解决。
磨刀不误吹柴工,我们首先得来认识一下,Python给我们提供的
经过我的总结,大约常用的方法有如下这些:
好了,Python线程基础知识,我们大概都介绍完了。
从下一章开始,我们就开始接触多线程里比较难的知识点啦,是不是有点小期待呢?
本系列文章首发于公众号:PytherTime
未授权者禁止转载。
关注公众号,获取最新文章
并发编程进入第二篇。
今天的内容会比较基础,主要是为了让新手也能无障碍地阅读,所以还是要再巩固下基础。学完了基础,你们也就能很顺畅地跟着我的思路理解以后的文章。
本文目录
学会使用函数创建多线程学会使用类创建多线程
多线程:必学函数讲解
经过总结,Python创建多线程主要有如下两种方法:
函数
类
接下来,我们就来揭开多线程的神秘面纱。
. 学会使用函数创建多线程
在Python3中,Python提供了一个内置模块threading.Thread,可以很方便地让我们创建多线程。
threading.Thread()一般接收两个参数:
线程函数名:要放置线程让其后台执行的函数,由我们自已定义,注意不要加
();
线程函数的参数:线程函数名所需的参数,以元组的形式传入。若不需要参数,可以不指定。
举个例子
1import time 2from threading import Thread 3 4# 自定义线程函数。 5def main(name="Python"): 6 for i in range(2): 7 print("hello", name) 8 time.sleep(1) 9 10# 创建线程01,不指定参数 11thread_01 = Thread(target=main) 12# 启动线程01 13thread_01.start() 14 15 16# 创建线程02,指定参数,注意逗号 17thread_02 = Thread(target=main, args=("MING",)) 18# 启动线程02 19thread_02.start()
可以看到输出
1hello Python 2hello MING 3hello Python 4hello MING
是不是超级简单呢?别急,下面也是一样简单。
. 学会使用类创建多线程
相比较函数而言,使用类创建线程,会比较麻烦一点。首先,我们要自定义一个类,对于这个类有两点要求,
必须继承
threading.Thread这个父类;
必须覆写
run方法。
这里的
run方法,和我们上面
线程函数的性质是一样的,可以写我们的业务逻辑程序。在
start()后将会调用。
来看一下例子
为了方便对比,
run函数我复用上面的
main。
1import time 2from threading import Thread 3 4class MyThread(Thread): 5 def __init__(self, name="Python"): 6 # 注意,super().__init__() 一定要写 7 # 而且要写在最前面,否则会报错。 8 super().__init__() 9 self.name=name 10 11 def run(self): 12 for i in range(2): 13 print("hello", self.name) 14 time.sleep(1) 15 16if __name__ == '__main__': 17 # 创建线程01,不指定参数 18 thread_01 = MyThread() 19 # 创建线程02,指定参数 20 thread_02 = MyThread("MING") 21 22 thread_01.start() 23 thread_02.start()
当然结果也是一样的。
1hello Python 2hello MING 3hello Python 4hello MING
. 多线程:必学函数讲解
学完了两种创建线程的方式,你一定会惊叹,咋么这么简单,一点难度都没有。其实不然,上面我们的
线程函数为了方便理解,都使用的最简单的代码逻辑。而在实际使用当中,多线程运行期间,还会出现诸多问题,只是我们现在还没体会到它的复杂而已。
不过,你也不必担心,在后面的章节中,我会带着大家一起来探讨一下,都有哪些难题,应该如何解决。
磨刀不误吹柴工,我们首先得来认识一下,Python给我们提供的
Thread都有哪些函数和属性,实现哪些功能。学习完这些,在后期的学习中,我们才能更加得以应手。
经过我的总结,大约常用的方法有如下这些:
1t=Thread(target=func) 2 3# 启动子线程 4t.start() 5 6# 阻塞子线程,待子线程结束后,再往下执行 7t.join() 8 9# 判断线程是否在执行状态,在执行返回True,否则返回False 10t.is_alive() 11t.isAlive() 12 13# 设置线程是否随主线程退出而退出,默认为False 14t.daemon = True 15t.daemon = False 16 17# 设置线程名 18t.name = "My-Thread"
好了,Python线程基础知识,我们大概都介绍完了。
从下一章开始,我们就开始接触多线程里比较难的知识点啦,是不是有点小期待呢?
本系列文章首发于公众号:PytherTime
未授权者禁止转载。
关注公众号,获取最新文章
相关文章推荐
- Python并发编程之创建多线程的几种方法(二)
- python多线程编程:简介-创建-方法-通信
- objective-c多线程编程的几种方法
- 开始慢慢学习这本书了。。Python编程实战:运用设计模式、并发和程序库创建高质量程序
- 多线程编程——创建线程的三种方法
- 【iOS开发-多线程】多线程创建的几种方法对比
- java 并发包里Eexcutors创建线程池的几种方法
- python多线程编程: python对多线程的支持和线程的创建、启动、挂起、退出
- android 创建多线程的几种方法
- Python中多线程的创建及基本调用方法
- 分析Python编程时利用wxPython来支持多线程的方法
- iOS 创建多线程的几种方法
- python并发编程之多进程、多线程、异步和协程
- java 多线程总结(一) 创建线程的几种方法及对终止线程运行的讨论
- 创建多线程的方法 以及 几种创建多线程方法的异同点
- Java6学习笔记56——多线程编程——线程的创建方法2
- 【并发编程】实现多线程的两种方法
- 《Python 编程实战:运用设计模式、并发和程序库创建高质量程序》阅读笔记
- 多线程编程的几种方法
- Java创建多线程的几种方法