class MyThreadClass (Thread): def __init__(self, name, duration): Thread.__init__(self) self.name = name self.duration = duration def run(self): print ("---> " + self.name + \ " running, belonging to process ID "\ + str(os.getpid()) + "\n") time.sleep(self.duration) print ("---> " + self.name + " over\n") def main(): start_time = time.time() # Thread Creation thread1 = MyThreadClass("Thread#1 ", randint(1,10)) thread2 = MyThreadClass("Thread#2 ", randint(1,10)) thread3 = MyThreadClass("Thread#3 ", randint(1,10)) # Thread Running thread1.start() thread2.start() thread3.start() # Thread joining thread1.join() thread2.join() thread3.join() # End print("End") #Execution Time print("--- %s seconds ---" % (time.time() - start_time)) if __name__ == "__main__": main()
时间: 2024-04-29 10:20:43 浏览: 69
Python RuntimeError: thread.__init__() not called解决方法
这是一个使用 Python 语言中的 threading 模块和 multiprocessing 模块创建和管理多线程和多进程的代码示例。该示例中定义了一个 MyThreadClass 类,该类继承自 Thread 类,重写了 run() 方法来指定线程的运行逻辑。在 main() 函数中,创建了三个 MyThreadClass 类的实例,并随机指定每个实例的运行时间。然后启动这三个线程,并等待它们全部运行结束后再继续执行后面的代码。最后输出 "End" 字符串和程序的执行时间。
需要注意的是,在该示例中使用了 Python 中的 os 模块来获取当前线程所属的进程 ID。另外,该示例中使用了 time 模块来计算程序的执行时间。同时,由于 Python 的 GIL 限制了多线程并发执行的能力,因此该示例中还使用了 multiprocessing 模块来创建和管理多进程,从而提高程序的效率。
阅读全文