1、创建一个多线程
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---- '''