Другой способ создать поток в Python

Опубликовано: 12 Апреля, 2022

Поток представляет собой объект в пределах процесса , который может быть запланирован для выполнения. Кроме того, это наименьшая единица обработки, которая может выполняться в операционной системе.

Есть несколько способов создать поток:

1) Создайте поток без использования явной функции:

By importing the module and creating the Thread class object separately we can easily create a thread. It is a function-oriented way of creating a thread

Python3

# Import required modules
from threading import *    
  
  
# Explicit function
def display() :                
  for i in range(10) :
    print("Child Thread")
  
  
# Driver Code    
      
# Create object of thread class    
Thread_obj = Thread(target=display)        
  
# Executing child thread
Thread_obj.start()            
  
# Executing main thread
for i in range(10):            
  print("Main Thread")
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread  

В приведенном выше примере мы создали явную функцию display (), которая выводит дочерний поток 10 раз. Затем мы создали объект класса Thread с именем Thread_obj, используя модуль потоковой передачи. Первая резьба ориентирована на дисплей () метод , т.е. дисплей () метод будет выполняться с помощью этого объекта резьбы и основной нити (второго) ориентированно для цикла и будет нести ответственность за выполнение в основном потоке 10 раз.

ПРИМЕЧАНИЕ. Здесь, какой поток получит шанс первым ( основной поток или дочерний поток), зависит от планировщика потоков, присутствующего в виртуальной машине Python (PVM), поэтому мы не можем предсказать результат.

2) Создайте поток, расширив класс потока:

In this method, we will extend the thread class from the threading module. This approach of creating a thread is also known as Object-Oriented Way.  

Python3

# Import required module
from threading import *
  
  
# Extending Thread class
class Mythread(Thread):
  
    # Target function for thread
    def run(self):
        for i in range(10):
            print("Child Thread")
  
  
# Driver Code
              
# Creating thread class object
t = Mythread()
  
# Execution of target function
t.start()
  
# Executed by main thread
for i in range(10):
    print("Main Thread")
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread

В приведенном выше примере мы создаем класс, который расширяет класс Thread , внутри этого класса мы должны переопределить метод run (), который будет целевой функцией нашего дочернего потока , когда вызывается метод start (), он инициирует выполнение метода run () (целевая функция) потока .

3. Создайте поток без расширения класса потока:

Another Object-Oriented Way of creating Thread is by not extending any thread class to create Thread.

Python3

# Import required modules
from threading import *
  
  
# Creating class
class Gfg:
  
    # Creating instance method
    def method1(self):
        for i in range(10):
            print("Child Thread")
  
  
# Driver Code
              
# Creating object of Gfg class
obj = Gfg()
  
# Creating object of thread by
# targeting instance method of Gfg class
thread_obj = Thread(target=obj.method1)
  
# Call the target function of threa
thread_obj.start()
  
# for loop executed by main thread
for i in range(10):
    print("Main Thread")
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread

В приведенной выше программе мы отдельно создаем объект класса потока и класса Gfg , и всякий раз, когда мы создаем объект класса потока в этот раз, мы также должны упоминать целевую функцию. Объект класса потока нацелен на метод экземпляра класса Gfg . Чтобы начать выполнение целевой функции, мы должны вызвать метод start () .

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.