标签:对象 方式 调用 isp run second thread 查看 获得
python 的 thread 模块是比较底层的模块,threading 模块是对 thread 做了一些封装的,可以更好的使用
说明:
多线程执行
# coding=utf-8 import threading import time class HelloWorld(threading.Thread): def run(self): print(f"hello, world ~, my name is{self.name}") time.sleep(1) if __name__ == ‘__main__‘: for i in range(5): hello_obj = HelloWorld() hello_obj.start()
可以看到同时打印了 hello, world ~,还有自己的 name(Thread-id);当调用 start() 时,才会真正的创建线程,并且开始执行
主线程会等待所有的子线程结束后才结束
# coding=utf-8 import threading import time class HelloWorld(threading.Thread): def __init__(self, num): threading.Thread.__init__(self) self.second = num def run(self): print(f"hello, world ~, my name is{self.name}") time.sleep(self.second) if __name__ == ‘__main__‘: for i in range(5): hello_obj = HelloWorld(i) hello_obj.start() while True: # 查看当前运行的线程数量 length = len(threading.enumerate()) print(f"current running thread num is:{length}") if length <= 3: break time.sleep(1)
总结:
标签:对象 方式 调用 isp run second thread 查看 获得
原文地址:https://www.cnblogs.com/kaichenkai/p/10841008.html