Um tópico de um programa é uma coleção de instruções que podem ser realizadas separadamente do restante do programa. Como resultado, cada uma das inúmeras pequenas tarefas que um extenso programa pode ser dividido em vários tópicos, desde que sua execução seja independente da das outras tarefas. Se um programa é executado apenas em um tópico, ele usa apenas uma CPU ou uma peça de código. No entanto, se um programa puder ser dividido em vários tópicos e que cada um desses tópicos use uma CPU separada, o programa será executado muito mais rápido e será mais eficaz. Um tópico nunca fornece um resultado diretamente em python. O procedimento de thread "start ()" que gera um tópico de execução inicia as ações em execução do thread que executa nosso script. A abordagem "run ()" pode empregar o método de destino se for fornecido. O objetivo é simplesmente chamar a função em um tópico alguns de cada vez.
Exemplo 1: Função Python retornando o valor de uma operação encadeada
Nesse caso, usaremos um script python para retornar o valor da função do thread. Um fio é um fluxo de processamento único. Isso sugere que seu código lidará com duas ocorrências simultâneas. A maior parte das soluções Python, no entanto, apenas cria a idéia de que vários tópicos estão ativos ao mesmo tempo. O tipo de retorno de uma função é normalmente usado para descrever o valor que fornece ao usuário. Todo o procedimento Python parece envolver um manipulador de eventos, direta ou sem querer. Um tópico não responde instantaneamente aos valores. O processo "run ()" é denominado pelo método start () do thread, criando um encadeamento separado de processamento para o nosso código. Se for fornecido, a função de destino pode ser chamada usando o método "run ()". Para recuperar valores de um thread, um thread em um script deve ser criado primeiro. Podemos retornar um valor de função de um único thread ou vários threads.
Vamos agora começar a implementar o código. Primeiro, importamos o tópico da seção de rosqueamento. O módulo Thread deve ser importado para criar threads no Python. A criação de entidades do pacote "Threading" considera cada tópico como um objeto. Enquanto o pacote "Thread" leva em consideração uma função semelhante a um thread. Em seguida, definimos uma função com o nome "func" na próxima etapa. Como essa função é aquela que o usuário pode especificar, demos o nome de nossa escolha. "Argu1" e "Returning_val" foram fornecidos como parâmetros à função "Func" em seus parênteses.
Então, na etapa seguinte, usamos "retornando_val" e passamos o valor "0" enquanto definimos a frase "retornar o valor de" e passar o argumento "Argu1" com o símbolo add. Depois disso, criamos a variável "Retorning_1_value" e a configuramos como "Nenhum*1". Da mesma forma, criamos "Retorning_2_Value" e o definimos como "Nenhum*1" para o segundo valor de retorno. O método "func" mostra o valor do argumento 1 e insere a declaração de retorno no valor de retorno 0 posições.
Para criar um thread e chamar a função dentro dele, devemos primeiro chamar de "thread" e depois "Target = func" em cada um de seus parênteses. O Target é essencialmente uma função, por isso, alvo de "Func" e enviamos a lista de argumentos do thread, que contém "Thread 1" e o "Valor de Retorno 1". Nesse caso, o valor de retorno 1 é usado para recuperar o valor da função em que este encadeamento é armazenado na variável "Thread1".Em seguida, realizamos o mesmo procedimento para o segundo tópico. Chamamos threads e, dentro dele, passamos a função "func", a lista de parâmetros para o qual é "Thread 2", bem como o "retornando_2_value", que usamos para obter o valor da função. Este tópico o armazena na variável "Thread2". Os threads agora são iniciados usando a função "start ()" com "Thread1" e "Thread2". Na etapa seguinte, utilizamos os métodos "ingressos ()" para aguardar os threads terminarem a execução. A função "print ()" é então usada na linha a seguir com os argumentos "returnin_1_value" e "returning_2_value".
Na saída, ele exibiu o valor de retorno. Primeiro, mostrou a declaração de impressão em que passamos o valor de retorno. O valor para 1 é "Thread1" e 2 é "Thread 2". Em seguida, ele exibiu a instrução Threads, que é "retornar o valor do thread 1", e o segundo é "retornar o valor do thread 2".
Exemplo 2: Vários valores recebendo retornos de um tópico
Nesse caso, retornaremos vários valores dos threads para a tela de saída. Quando um programa produz numerosos fios e ciclos por meio de sua execução, é multithreading, também conhecido como rosqueamento, pois impede uma operação de mais duração de bloquear todos os outros. Isso é eficaz para atividades que podem ser divididas em subtarefas menores, cada uma das quais pode ser dada a um tópico para execução.
Vamos começar a implementar o código importando três bibliotecas. O pacote Python Time fornece uma variedade de representações de codificação para o tempo, como objetos, números e caracteres. Na primeira importação, importamos "sono" do módulo de tempo. Ele também permite avaliar a eficácia do seu script e esperar enquanto ele é executado, além de outros recursos além da representação do tempo. O procedimento Sleep () do módulo de tempo permite suspender a execução do tópico de chamada por muitos segundos que você quiser. Depois disso, importamos "thread" do módulo de rosqueamento. A classe “CustomThread” é definida na etapa a seguir e aceita o argumento “Thread” como seu único parâmetro.
Em seguida, definimos o método "_init_" e fornecemos a palavra -chave "eu" a ele. Cada objeto ou classe em Python tem a palavra -chave "self" atribuída a ele. A palavra -chave "self" permite acessar rapidamente todos os exemplos declarados em uma classe, incluindo seus métodos e atributos. Um dos métodos restritos de Python é __init__. Na linha seguinte, chamamos esse método usando um tópico usando “Thread. nele mesmo)". Então, na linha seguinte, definimos a função "run ()" e passamos o argumento "eu.“Então, usamos o método“ Sleep () ”e definimos o tempo para“ 1 ”segundos, o que significa que ele interrompe sua execução por um segundo.
Em seguida, definimos os valores em cada variável de instância usando “self.val1 "," eu.val2 "e" eu.Val3 "definindo seus valores como" Hello "," 18 "e" True ", respectivamente. Em outras palavras, chamamos os valores passando a palavra -chave "eu" aqui. Em seguida, chamamos o "CustomThread" no tópico e o salvamos na variável "Thread". Depois disso, usamos o método start () com threads para iniciar o tópico e a técnica "junção ()" com "thread" para esperar que o programa principal seja executado. Em seguida, chamamos a função "print ()" e, dentro dela, chamamos os valores de retorno do thread que passam os argumentos de "thread.Val1 "," Tópico.val2 "e" thread.val3 ”.
Conforme mostrado na captura de tela a seguir, ele retorna vários valores dos threads na saída. O primeiro valor é "Hello", o segundo é "18", e o terceiro é "verdadeiro", que são os valores dos threads que havíamos armazenado na função "run ()".
Conclusão
Discutimos como simplesmente retornar o valor do encadeamento ou os valores de uma função de um thread neste artigo. Duas instâncias foram usadas neste artigo. O valor da função da operação do fio foi retornado no primeiro e os numerosos valores de encadeamento foram retornados na exibição de saída do segundo. Em cada um de nossos casos, definimos funções definidas pelo usuário que são chamadas em threads. A classe "CustomThread" também foi definida no segundo exemplo. Você se beneficiará da leitura deste artigo ao pesquisar este tópico.