码迷,mamicode.com
首页 > 编程语言 > 详细

最简单的多线程并发与守护线程与join的运用

时间:2018-10-23 10:49:12      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:reading   循环   stat   cos   elf   tar   get   range   class   

import threading import time def run(n): print("talk",n) time.sleep(3) #run("t1") #run("t2") t1=threading.Thread(target=run,args=("t1",)) t2=threading.Thread(target=run,args=("t2",)) #t1.start() #t2.start() ##类的多线程方式 class MyThread(threading.Thread): def __init__(self,n,sleep): super(MyThread,self).__init__() self.n=n self.sleep=sleep def run(self): print("talk me all you know",self.n) time.sleep(self.sleep) print("so esay %s",self.n) #t1=MyThread("t1",2) #t2=MyThread("t2",4) #t1.start() #t2.start() #t1.join() #t2.join() #等待t2的结果(这一步后直接计算时间得到的就是2个线程执行完所花的时间) #print("主要程序执行完毕")

##计算所有线程花费的时间,守护线程(非守护线程一结束程序就结束),看是否是主线程,活跃的线程数量

def run(n):
    print("task",n)
    time.sleep(2)
stat_time=time.time()
loot=[] #创建一个空列表(存线程实例)
for i in range (50):
    t=threading.Thread(target=run,args=("t-%s"%i,))
    t.setDaemon(True)#把当前线程设置为守护线程
    t.start()
    loot.append(t) #为了不阻塞后面的线程启动,不在这里join,先放到一个列表里

#for t in loot:#循环线程实例列表,等待所有线程执行完毕
     #t.join() #等待一个线程全部执行完再执行其他线程(把并程改成了串行)
print("-----ddddd-----",threading.current_thread(),threading.active_count())#看是否是主线程,活跃的线程数量
print("cost:",time.time()-stat_time)

最简单的多线程并发与守护线程与join的运用

标签:reading   循环   stat   cos   elf   tar   get   range   class   

原文地址:http://blog.51cto.com/12992048/2307606

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!