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:
- Usando una función
- Extendiendo la clase de hilo
- 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