Pthread_kill 3 c função

Pthread_kill 3 c função
“Podemos fazer inúmeros fios para suportar fluxo de processo simultâneo. Um desses threads posix é a função pthread_kill () 3 c. O objetivo do método pthread_kill () é solicitar que um sinal seja enviado ao tópico designado. Você pode alertar outro processo enquanto chama a função pthread_kill. Apesar do nome, ele pode ser empregado para uma variedade de propósitos além de encerrar um processo. Pthread kill () fornece 0 quando bem -sucedido, um código de erro quando malsucedido, e nenhum sinal é entregue. Dentro deste guia, mostraremos o uso do método pthread_kill.”

Você pode comunicar mensagens entre processos nas seguintes circunstâncias: Quando uma tarefa é concluída, o processo filho iniciado pelo processo pai é encerrado. O processo infantil pode estar executando um loop infinito. Quando ocorre uma falha ou outro evento como o impasse, um processo que faz parte de um grupo deve parar ou sinalizar os outros processos dentro do grupo. Ao coordenar, dois processos devem sincronizar usando esta função. Por exemplo, um tópico pode utilizar isso para influenciar como um sinal é transmitido para um grupo de outros threads. A seguir, mostrada abaixo, a sintaxe da função pthead_kill () de c. Sinal.H Arquivo de cabeçalho é usado porque todas essas funções são definidas dentro deste arquivo de cabeçalho.

#incluir
int pThread_kill (pthread_t thread_id, int signal);

O método pThread Kill () faria verificação de erros se o valor do sinal fosse definido como 0, mas, na realidade, nenhum sinal foi fornecido a essa função para o tópico. A função retorna zero quando concluir seu trabalho. Caso contrário, um erro numérico é retornado pela função. Nenhum sinal é entregue se o método pThread Kill () falhar. Se ocorrer um dos seguintes itens: nenhum thread poderá ser descoberto correspondendo ao indicado pelo ID do encadeamento fornecido; Um número de sinal inválido ou não autorizado é o valor do argumento do sinal.

Vamos criar um arquivo de programação C para entender a função pthread_kill (). Ao usar o comando vim, temos que criar um arquivo de código e salvar o arquivo como pthread_kill.c. Para obter o resultado desejado, digite o comando subsequente na tela.

Aqui está o trecho de código; Nas primeiras linhas de código, incluímos os arquivos de cabeçalho. Acabamos de imprimir a mensagem do thread que agora está em execução no método Display_Output. Declaramos uma variável do tipo inteiro na função principal para detectar o status do encadeamento. A variável num foi inicializada e o método de criação de roscas foi passado. Pthread t é usado para identificar distintamente o tópico. Em seguida, usando o método pThread Create, geramos um tópico. No caso de falha, veja se esse método retorna um valor menor que 0, o que indicaria que o processo de criação de roscas falhou.

Depois disso, o tópico é colocado para dormir por dois segundos chamando o método do sono. O procedimento de matança do pThread foi invocado e o ID do thread e o sinal SIGUSR1 foram transmitidos a ele. O uso de sinais SIGUSR1 e SIGUSR2 depende dos requisitos do usuário. Se você implementar um manipulador de sinal para eles no aplicativo que recebe o sinal, eles são particularmente úteis durante a comunicação entre processos. A próxima linha faz uma verificação condicional que confirmará se o processo de matança de threads falhou e se uma mensagem de erro foi impressa usando a instrução Perror. Em caso de sucesso, chamamos o método Pthread_Join, que oferece um mecanismo direto que permite que um aplicativo aguarde que um tópico termine. Mais tarde, verificamos se esse processo falhou em imprimir uma mensagem de erro.

Feche o editor do VIM depois de entrar no código, atingindo a tecla Escape e o: x comando. Compile o código depois disso usando um compilador C de sua escolha, certificando -se de que produz o arquivo de saída desejado. Para construir o código, digite os comandos mostrados abaixo. Quaisquer erros serão mostrados na tela do terminal se ocorrerem. Nada aparecerá na tela após uma compilação bem -sucedida.

Execute o arquivo de saída para ver a mensagem de que o thread está executando, indicando que não houve erros depois de ligar para o thread para matar a função e que tudo correu bem da criação de threads através da matança de threads para tingir funções. Para obter o resultado desejado, digite o comando subsequente na tela.

Vamos fazer algumas alterações no código, então digite o comando vim junto com o nome do arquivo C. Para obter o resultado desejado, digite o comando subsequente na tela.

A declaração condicional após a modificação no método do thread se junta, onde verificamos para ver se o método de junção do thread definiu a variável de status do thread para maior ou igual a 1, indicando uma operação bem -sucedida, está ausente das linhas de código abaixo. Se isso for bem -sucedido, exibiremos uma mensagem na tela que diz: “Tópico juntando -se bem -sucedido.”. Outra pequena mudança no código é que a função Thread_kill agora é colocada após a declaração condicional da função Thread_Join. Isso significa que a comunicação entre processos ocorrerá agora após a função Thread_join.

Para atualizar o arquivo de saída, recomponha o código. Este comando compilará o arquivo C que contém o código do thread. Para obter o resultado desejado, digite o comando subsequente na tela.

Execute o código agora e você verá que ele imprimiu com sucesso o método de união de threads na tela. A execução do encadeamento é exibida antes da chamada para a função de saída de exibição. Para obter o resultado desejado, digite o comando subsequente na tela.

Conclusão

Trata -se da demonstração de uma função pthread_kill () de C para solicitar que um sinal seja direcionado para o tópico escolhido. Discutimos um exemplo detalhado de C usando a função Pthread_kill dentro dela para enviar um sinal para um método específico quando se trata do término de uma função de chamada. Isso é tudo sobre pthread_kill. Espero que você goste.