Python - 命名线程


线程的名称仅用于标识目的,就语义而言没有任何作用。多个线程可能具有相同的名称。线程名称可以指定为 thread() 构造函数中的参数之一。

thread(name)

这里的名称是线程名称。默认情况下,会构造一个唯一的名称,例如“Thread-N”。

线程对象还有一个属性对象,用于线程名称属性的 getter 和 setter 方法。

thread.name = "Thread-1"

守护进程属性

一个布尔值,指示该线程是否为守护线程 (True) 或不是 (False)。必须在调用 start() 之前设置它。

例子

要使用 threading 模块实现新线程,您必须执行以下操作 -

  • 定义Thread类的新子类。

  • 重写__init__(self [,args])方法以添加其他参数。

  • 然后,重写 run(self [,args]) 方法来实现线程启动时应该执行的操作。

创建新的 Thread 子类后,您可以创建它的实例,然后通过调用 start() 启动一个新线程,start() 又调用 run() 方法。

import threading
import time
class myThread (threading.Thread):
   def __init__(self, name):
      threading.Thread.__init__(self)
      self.name = name

   def run(self):
      print ("Starting " + self.name)
      for count in range(1,6):
         time.sleep(5)
         print ("Thread name: {} Count: {}".format ( self.name, count ))
      print ("Exiting " + self.name)

# Create new threads
thread1 = myThread("Thread-1")
thread2 = myThread("Thread-2")

# Start new Threads
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print ("Exiting Main Thread")

它将产生以下输出-

Starting Thread-1
Starting Thread-2
Thread name: Thread-1 Count: 1
Thread name: Thread-2 Count: 1
Thread name: Thread-1 Count: 2
Thread name: Thread-2 Count: 2
Thread name: Thread-1 Count: 3
Thread name: Thread-2 Count: 3
Thread name: Thread-1 Count: 4
Thread name: Thread-2 Count: 4
Thread name: Thread-1 Count: 5
Exiting Thread-1
Thread name: Thread-2 Count: 5
Exiting Thread-2
Exiting Main Thread