1 ''' 2 threading.Thread类是Python threading模块中用于创建和管理线程的主要类。它可以通过子类化并重写run()方法来定义自己的线程逻辑。一般会使用线程池 3 1. 构造器: 4 threading.Thread类的构造器如下: 5 class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None) 6 1. group:不常用,为了向后兼容而保留。 7 2. target:指定线程要执行的可调用对象(函数)。 8 3. name:线程的名称。 9 3. args:传递给target函数的位置参数,以元组形式提供(元组方式传参一定要和参数的顺序保持一致。)。 10 4. kwargs:传递给target函数的关键字参数,以字典形式提供(字典方式传参字典中的key一定要和参数名保持一致)。 11 5. daemon:指定线程是否为守护线程,默认为None即非守护线程 12 13 2. 常用方法: 14 1. start():启动线程,使其开始执行任务(如果有重写run方法就自动执行run方法或执行构造器target参数指定的函数/方法) 15 2. join(timeout=None):等待线程执行完成。如果指定了timeout参数,表示最长等待时间,超过该时间后仍未完成,则继续执行后续代码。 16 3. is_alive():检查线程是否仍然活动。 17 4. getName():获取线程的名称。 18 5. setName(name):设置线程的名称。 19 6. ident:线程的唯一标识符,只读属性。也可通过thread_id = threading.get_ident()获取当前线程的id 20 21 22 ''' 23 import threading 24 import time 25 26 27 def task(name): 28 print(f"Thread {name} started") 29 time.sleep(2) # 模拟耗时操作 30 print(f"Thread {name} finished") 31 32 33 def main(): 34 thread1 = threading.Thread(target=task, args=("Thread 1",)) 35 thread2 = threading.Thread(target=task, args=("Thread 2",)) 36 37 thread1.start() 38 thread2.start() 39 40 thread1.join() 41 thread2.join() 42 43 print("All threads completed") 44 45 46 if __name__ == "__main__": 47 main()
输出:
Thread Thread 1 started Thread Thread 2 started Thread Thread 2 finished Thread Thread 1 finished All threads completed
继承Thread类创建线程实现多线程多任务的方式:
1 import threading 2 import time 3 4 5 class MyThread(threading.Thread): 6 def __init__(self, name): 7 super().__init__() 8 self.name = name 9 10 def run(self): 11 print(f"Thread {self.name} started") 12 time.sleep(2) # 模拟耗时操作 13 print(f"Thread {self.name} finished") 14 15 16 def main(): 17 thread1 = MyThread("Thread 1") 18 thread2 = MyThread("Thread 2") 19 20 thread1.start() 21 thread2.start() 22 23 thread1.join() 24 thread2.join() 25 26 print("All threads completed") 27 28 29 if __name__ == "__main__": 30 main()
输出:
Thread Thread 1 started Thread Thread 2 started Thread Thread 1 finished Thread Thread 2 finished All threads completed
标签:__,name,Thread,threading,详解,线程,target From: https://www.cnblogs.com/allenxx/p/17589136.html