Implementando Threading sin heredar la clase Thread en Python

Vamos a implementar subprocesos en Python usando una Clase sin subclasificar la superclase llamada Subproceso.

Para aprovechar al máximo el procesador subyacente y mejorar el rendimiento de nuestra aplicación, podemos crear varios subprocesos que se pueden ejecutar en paralelo. Aprovechando al máximo el procesador y además nuestra aplicación dará la mejor experiencia de usuario, será rápida.

Hay tres formas de crear hilos en Python:

  1. Usando una función
  2. Extendiendo la clase de hilo
  3. Sin extender la clase de hilo

Implementaremos el último enfoque, también llamado enfoque híbrido. Definiremos una Clase, pero la Clase no extenderá el subproceso de la clase principal, sino que definiremos directamente cualquier función dentro que queramos. En su lugar, crearemos una instancia del hilo y luego pasaremos el objeto y la función que queremos ejecutar dentro de ese objeto como destino y el argumento es el segundo argumento. Luego invoque el método de inicio de subproceso.

Ejemplo 1:
Implementación de Thread imprimiendo los primeros 10 números naturales
 

Python3

# importing thread module
from threading import *
  
# class does not extend thread class
class MyThread:
    def display(self):
        i = 0
        print(current_thread().getName())
        while(i <= 10):
            print(i)
            i = i + 1
  
# creating object of out class
obj = MyThread()
  
# creating thread object
t = Thread(target = obj.display)
  
# invoking thread
t.start()

Producción:

Thread-1
0
1
2
3
4
5
6
7
8
9
10

Ejemplo 2:
Implementación de Thread imprimiendo números pares dentro de un rango dado

Python3

# importing thread module
from threading import *
  
# class does not extend thread class
class MyThread:
    def display(self):
        i = 10 
        j = 20
        print(current_thread().getName())
        for num in range(i, j + 1):
            if(num % 2 == 0):
                print(num)
  
# creating an object of our class                
obj = MyThread()
  
# creating a thread object
t = Thread(target = obj.display)
  
# invoking the thread
t.start()

 Producción:

Thread-1 
10 
12 
14 
16 
18 
20

Publicación traducida automáticamente

Artículo escrito por simran_bhandari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *