Python 多线程常用属性和方法
2017-01-22 00:00
316 查看
摘要: threading
注意:一般使用高级线程模块,threading 而不用 Thread 模块,threading 模块中包含 Thread 类
Thread模块:低级模块,不推荐使用,不支持守护线程(daemon)概念
threading模块:高级模块,推荐使用,已对 Thread类 进行封装,支持daemon
基本属性:
start() 线程准备就绪,等待CPU调度,准备开始执行
getName():获取线程名称
setName('name') : 为线程设置名称
daemon:守护线程(可理解为新建的子线程为后台线程)
如果你设置一个线程为守护线程(当设置t1.setDaemon(True)时),就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程执行玩完后才退出,即前台进程结束后,后台进程也跟着结束了
isDaemon()
setDaemon()
是否为守护线程 True( 是守护线程,不重要 ) False (不是守护线程)
用法:t1.setDaemon( True 或False )
默认为False ,等前台(主)线程执行完后才执行,且 放在 t1.start() 前面才有效
守护线程例子:
输出结果:
如上图所示,前台进程执行5秒后,就退出了,虽然守护线程(后台线程)需要执行10秒,但5秒后,也跟着主线程一起退出了。
多线程导入模块:
from threading import Thread 或 import threading注意:一般使用高级线程模块,threading 而不用 Thread 模块,threading 模块中包含 Thread 类
Thread模块:低级模块,不推荐使用,不支持守护线程(daemon)概念
threading模块:高级模块,推荐使用,已对 Thread类 进行封装,支持daemon
Threading 模块属性和方法:
from threading import Thread #导入Threading 高级模块中的 Thread 类 def foo(arg,v): #定义1个执行函数 print(arg,v) t1=Thread(target=foo,args=('ddd',1,)) #创建1个 Thread 线程实例 t1.start() #执行这个线程
基本属性:
start() 线程准备就绪,等待CPU调度,准备开始执行
getName():获取线程名称
setName('name') : 为线程设置名称
daemon:守护线程(可理解为新建的子线程为后台线程)
如果你设置一个线程为守护线程(当设置t1.setDaemon(True)时),就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程执行玩完后才退出,即前台进程结束后,后台进程也跟着结束了
isDaemon()
setDaemon()
是否为守护线程 True( 是守护线程,不重要 ) False (不是守护线程)
用法:t1.setDaemon( True 或False )
默认为False ,等前台(主)线程执行完后才执行,且 放在 t1.start() 前面才有效
守护线程例子:
from threading import Thread #导入Threading 高级模块中的 Thread 类 import time def foo(arg,v): #定义1个执行函数,需要执行10秒 for i in range(10): print('守护线程开始执行'+str(i)+'秒') time.sleep(1) print('主线程(前台线程)开始') #主线程(前台线程)执行1个动作,打印 t1=Thread(target=foo,args=('ddd',1,)) #实例化1个子线程 t1.setDaemon(True) #设置这个子线程为守护线程(后台线程) t1.start() #子线程开始工作,执行1个10秒的函数 #print(t1.getName()) print('主线程执行中') #主线程(前台线程)执行1个动作,打印 print('线程结束') #主线程(前台线程)执行1个动作,打印 time.sleep(5) #主线程一共执行了5秒
输出结果:
主线程(前台线程)开始 守护线程开始执行0秒 主线程执行中 线程结束 守护线程开始执行1秒 守护线程开始执行2秒 守护线程开始执行3秒 守护线程开始执行4秒 守护线程开始执行5秒
如上图所示,前台进程执行5秒后,就退出了,虽然守护线程(后台线程)需要执行10秒,但5秒后,也跟着主线程一起退出了。
相关文章推荐
- 说说Python多线程中的daemon属性方法
- python多线程中daemon的属性方法
- python进阶之类常用魔法方法和魔法属性
- 说说Python多线程中的daemon属性方法
- js 常用属性和方法
- WindowsMediaPlayer的常用属性和方法
- String.常用的属性方法
- NetAdvantage asp.net ——WebChart常用属性与方法(一)
- delphi 常用属性,方法
- 《JavaScript高级程序设计》读书笔记之一:几个与原始类型等价的引用类型的常用方法和属性
- CrystallReportViewer控件类常用属性与方法
- NetAdvantage asp.net ——WebChart常用属性与方法
- windows media player 控件的常用属性及方法
- WebChart常用属性与方法
- 常用的属性或者构造方法参数的配置
- delphi 常用属性、方法、事件
- Python类属性和类方法的一些差别(与C++和Java相比)
- windows media player 控件的常用属性及方法
- XML中的一些常用属性和方法
- QTP获取浏览器的一些常用属性的方法