python的多线程和守护线程
2017-07-28 07:25
344 查看
1、创建一个多线程
2、join语句,等待某个线程执行完成在往下执行
3、线程的守护daemon
import threading import time ''' def threading_func(num): print("running on number:%s" %(num)) time.sleep(3) if __name__ == '__main__': t1 = threading.Thread(target=threading_func,args=(1,)) t2 = threading.Thread(target=threading_func,args=(2,)) t1.start() t2.start() #这里不会等待就会执行print语句,因为执行这个代码的是一个线程,而t1和t2又分别是2个线程,所以不会有等待就会执行print语句 print("____________________main____________________")
2、join语句,等待某个线程执行完成在往下执行
def threading_func(num): print("running on number:%s" %(num)) time.sleep(3) if __name__ == '__main__': t1 = threading.Thread(target=threading_func,args=(1,)) t2 = threading.Thread(target=threading_func,args=(2,)) t1.start() t2.start() # t2.join() print(t1.getName()) #获取线程名 print(t2.getName()) t1.join() t2.join() #等待线程t1的执行完成在往下执行,就是wait的意思,子线程t1执行后在往下执行 print("____________________main____________________")
3、线程的守护daemon
import threading import time def run(n): print("[%s]----is running----\n" %n) time.sleep(3) print("[%s]----is down----\n" %n) ''' def main(): for i in range(5): t = threading.Thread(target=run,args=[i,]) t.start() time.sleep(3) print("start threading",t.getName()) #这个例子是这样的,m是主线程,m这个主线程调用main这个方法,main这个方法又构建了5个子线程,我们就可以设置主线程监视子线程,监视的意思就是主线程退出,无论子线程是否执行 #完毕,都全部退出m.setDaemon(True),这个设置就是m这个主线程监视m的所有的子线程 m = threading.Thread(target=main,args=[]) m.setDaemon(True) m.start() # m.join() print("-----main thread down----") # 结果如下,主线程退出后,子线程有的还没有开始就已经退出了 # -----main thread down---- # [0]----is running---- ''' ''' def main(): for i in range(5): t = threading.Thread(target=run,args=[i,]) t.start() time.sleep(3) print("start threading",t.getName()) #这个例子是这样的,m是主线程,m这个主线程调用main这个方法,main这个方法又构建了5个子线程,我们就可以设置主线程监视子线程,监视的意思就是主线程退出,无论子线程是否执行 #完毕,都全部退出m.setDaemon(True),这个设置就是m这个主线程监视m的所有的子线程 m = threading.Thread(target=main,args=[]) # m.setDaemon(True) m.start() # m.join() print("-----main thread down----") # 结果如下,主线程退出后,子线程有的还没有开始就已经退出了 # -----main thread down---- # [0]----is running---- -----main thread down---- [0]----is running---- start threading Thread-2 [0]----is down---- [1]----is running---- [1]----is down---- start threading Thread-3 [2]----is running---- start threading Thread-4 [3]----is running---- [2]----is down---- start threading Thread-5 [3]----is down---- [4]----is running---- start threading Thread-6 [4]----is down---- '''
相关文章推荐
- python 多线程中的守护线程与join的用法
- Python多线程的创建,相关函数和守护线程的理解
- python 多线程中的守护线程与join的用法
- Python多线程的创建,相关函数和守护线程的理解
- java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(多线程编程之一)
- python中的多线程----以2个线程卖票为例
- Python 多线程,主线程与子线程
- 多线程----守护线程---Deamon
- JAVA多线程编程——1.9线程让步-1.11守护线程
- Java 多线程 - 守护线程
- Java多线程系列--“基础篇”10之 线程优先级和守护线程
- Python守护线程用法实例
- Python3多线程--守护线程&非守护线程
- Java多线程系列--“基础篇”10之 线程优先级和守护线程
- 多线程-线程控制之守护线程
- java多线程-守护线程
- 多线程“基础篇”10之 线程优先级和守护线程
- python多线程编程: 使用互斥锁同步线程
- Learning Python(17)--多线程编程之线程的局部变量
- 4.多线程之守护线程