Advertisement
AldenirLyiz

Multiprocessing.py

Jun 7th, 2022 (edited)
950
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.85 KB | None | 0 0
  1. from multiprocessing import Process
  2. import os
  3. from datetime import datetime
  4.  
  5. ''' Exemplo de uso de multiprocessamento, ou processamento paralelo em Python3+
  6.     Aldenir Luiz 07/06/22 Canal YouTube Python_Old_School'''
  7.  
  8. # Funcao*, Identifica os processos, |Use para idetificar as chamadas de funcoes|
  9. def info(titulo):
  10.     timer = datetime.strftime(datetime.now(), "%H:%M:%S")
  11.    
  12.     print(f'\n{titulo}')
  13.     print(f'Hora da Chamada: {timer}')
  14.     print(f'Nome do Modulo: {__name__}')
  15.     print(f'Filho de: {os.getppid()}')
  16.     print(f'Identificacao |PID|: {os.getpid()}')
  17.  
  18. # Exemplo_Funcao*, Gera uma combinacao de caracteres |usada para ilustar o exemplo|
  19. def gerador(tamanho):
  20.     info('Funcao Gerador de Combinacoes')
  21.    
  22.     chars = ''
  23.     for c_index in range(26):
  24.         chars += chr(c_index+97)
  25.     for index in range(tamanho):
  26.         sequencias = [x for x in chars]
  27.         for subindex in range(index):
  28.             sequencias = [x + i for i in chars for x in sequencias]
  29.     return sequencias
  30.  
  31. # Exemplo_Funcao*, Exibe as sequencias de caracteres geradas pela funcao gerador() |usada para ilustar o exemplo|
  32. def sequenciador(i_index, f_index, passo, sequencias):
  33.     info('Funcao Sequenciador')
  34.     print(f'\n>>{sequencias[i_index:f_index:passo]}\n')
  35.  
  36. # Estrutura de trava de pacote, exigido pelo freeze_suport()
  37. if __name__ == '__main__':
  38.     info('Processo Pai, Modulo __MAIN__')
  39.     p1 = Process(target=sequenciador, args=(0, -1, 2, gerador(2))) # gera combincaoes de 2dig, exibe a cada 2dig comecando de ab
  40.     p2 = Process(target=sequenciador, args=(1, -1, 2, gerador(2))) # gera combincaoes de 2dig, exibe a cada 2dig comecando de cd
  41.     # note que as combinacoes exibidas serao sempre diferentes nessa combinacao de indexadores mesmo sendo gerados na mesma sequencia
  42.     p1.start()
  43.     p1.join()
  44.     p2.start()
  45.     p2.join()
  46.  
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement