Python 线程的调用
Python 启动线程有2种方法,分别为 直接调用 与 继承调用。
1. 直接调用:
import threading import time def sayhi(num): print('运行线程号为: %s' %num) time.sleep(3) if __name__ == '__main__': t1 = threading.Thread(target=sayhi,args=(1,)) #创建一个线程 t1 t2 = threading.Thread(target=sayhi,args=(2,)) #创建一个线程 t2 t1.start() #运行线程t1 t2.start() #运行线程t2 print(t1.getName()) #打印线程t1名称 print(t2.getName()) #打印线程t2名称 t1.join() #join 等待线程t1运行完毕再往下走 t2.join() #join 等待线程t2运行完毕再往下走 print("运行完毕")
2. 直接调用,创建多个线程:
import threading import time def sayhi(num): print('运行线程号为: %s' %num) time.sleep(3) if __name__ == '__main__': t_list = [] for i in range(10): # 循环创建 10个 线程。 t = threading.Thread(target=sayhi,args=[i,]) t.start() t_list.append(t) # 将创建的进程 写入 t_list 这个列表中。 for i in t_list: # 循环列表,让所有线程,join ,执行完毕。 i.join() print("运行完毕")
3. 继承的方式:
import threading import time class MyThread(threading.Thread): #定义一个类,继承 threading.Thread 这个父类。 def __init__(self,num): threading.Thread.__init__(self) # 重写父类的构造函数。 self.num = num def run(self): #定义每个线程要运行的函数 print("线程运行号:%s" %self.num) time.sleep(3) if __name__ == '__main__': t1 = MyThread(1) t2 = MyThread(2) t1.start() t2.start()
4. 继承方式,增加join
import threading import time class MyThread(threading.Thread): #定义一个类,继承 threading.Thread 这个父类。 def __init__(self,num): threading.Thread.__init__(self) # 重写父类的构造函数。 self.num = num def run(self): #定义每个线程要运行的函数 print("线程运行号:%s" %self.num) time.sleep(3) print('线程 %s 运行完毕' %self.num) if __name__ == '__main__': t1 = MyThread(1) t2 = MyThread(2) t1.start() t2.start() t1.join() t2.join()

浙公网安备 33010602011771号