python多线程编程(2):自定义派生于Thread的对象(类实现)

tech2022-09-16  107

为了尽快理解进程,主线程,子线程,守护线程,这一节尽快跳过,直接上代码,读者在掌握python中class类的使用后可以很快理解。

程序采用类的方式实现了python多线程编程(1):使用Thread对象创建线程创建线程的作用,不一样的是:为了更进一步理解线程run()下面放了两个执行函数,即一个线程下执行了两个函数。创建线程类的实现就是把线程要执行的函数放到类的run()方法下。

import threading,time,random class MyThread(threading.Thread):#继承threading.Thread def __init__(self,n): #构造函数 threading.Thread.__init__(self) #调用父类构造函数 self.n = n def mission01(self): for i in range(5): time.sleep(random.choice(range(self.n))) thread_id = threading.get_ident()#获取当前线程标识符 print('Thread:{},Time:{}'.format(thread_id, time.ctime())) def mission02(self): for i in range(5): time.sleep(random.choice(range(self.n))) thread_id = threading.get_ident()#获取当前线程标识符 print('Thread:{},i am fine,Time:{}'.format(thread_id, time.ctime())) def run(self): self.mission01() self.mission02() if __name__ == '__main__': t1 = MyThread(5) t2 = MyThread(5) t1.start();t2.start()

运行结果如下:

Thread:14328,Time:Thu Sep 3 09:33:36 2020 Thread:14328,Time:Thu Sep 3 09:33:37 2020 Thread:15888,Time:Thu Sep 3 09:33:37 2020 Thread:15888,Time:Thu Sep 3 09:33:37 2020 Thread:14328,Time:Thu Sep 3 09:33:40 2020 Thread:14328,Time:Thu Sep 3 09:33:40 2020 Thread:15888,Time:Thu Sep 3 09:33:41 2020 Thread:14328,Time:Thu Sep 3 09:33:43 2020 Thread:14328,i am fine,Time:Thu Sep 3 09:33:43 2020 Thread:14328,i am fine,Time:Thu Sep 3 09:33:44 2020 Thread:15888,Time:Thu Sep 3 09:33:45 2020 Thread:15888,Time:Thu Sep 3 09:33:47 2020 Thread:14328,i am fine,Time:Thu Sep 3 09:33:48 2020 Thread:14328,i am fine,Time:Thu Sep 3 09:33:49 2020 Thread:15888,i am fine,Time:Thu Sep 3 09:33:51 2020 Thread:14328,i am fine,Time:Thu Sep 3 09:33:53 2020 Thread:15888,i am fine,Time:Thu Sep 3 09:33:55 2020 Thread:15888,i am fine,Time:Thu Sep 3 09:33:56 2020 Thread:15888,i am fine,Time:Thu Sep 3 09:33:56 2020 Thread:15888,i am fine,Time:Thu Sep 3 09:33:59 2020
最新回复(0)