int pthread_equal (pthread_t tid1, pthread_t tid2);
Arquivo de cabeçalho: #include <pthread.h>
Valor de retorno: se igual, retorna valor diferente de zero, caso contrário, retorna valor zero
Função: determinar se os dois IDs de thread são iguais
pthread_t pthread_self (vazio);
Arquivo de cabeçalho: #include <pthread.h>
Valor de retorno: o ID do thread do thread de chamada
int pthread_create (pthread_t * tidp, const pthread_attr_t * attr, void * (* start_rtn) (void *), void * restrito arg);
Arquivo de cabeçalho: #include <pthread.h>
Parâmetros: tidp: armazena o ID do segmento do novo segmento,
attr: Usado para personalizar vários atributos de thread, NULL para criar um thread com atributos padrão.
start_rtn: O thread recém-criado é executado a partir do endereço da função start_rtn, que tem apenas um parâmetro de ponteiro não digitado arg
Existem três maneiras de encerrar uma discussão:
(1) int pthread_cancel (thread pthread_t);
Função: solicitar a saída do thread de thread especificado do mesmo processo, mas não é certo se ele realmente terá efeito
(2) int pthread_exit (void * estado);
Função: Sair do tópico atual e retornar ao status
(3) A função thread retorna diretamente
int pthread_join (thread pthread_t, void ** retval);
Parâmetros: pthread_t thread: thread id do thread em espera
void ** retval: O código de erro retornado pelo thread em espera, incluindo o status da função pthread_exit () ou retorno direto
Nota: Esta função só tem efeito para aqueles cujos atributos de thread não estão separados, caso contrário, retornará diretamente o erro EINVAL.
int pthread_detach (pthread_t tid);
Função: separar o tópico especificado
Aplicações avançadas de threads:
void pthread_cleanup_push (void (* rtn) (void *), void * arg);
Parâmetros: rtn: um ponteiro de função, apontando para uma função de limpeza personalizada
arg: parâmetros passados para a função de limpeza
Função: Esta função é usada para colocar (ou registrar) uma função no topo de uma pilha de funções de limpeza.
Arquivo de cabeçalho: #include <pthread.h>
void pthread_clean_pop (int executar);
Arquivo de cabeçalho: #include <pthread.h>
Parâmetro: execute: quando for zero, remove a função de limpeza enviada (ou registrada) por pthread_cleanup_push (). Quando for diferente de zero, significa executar a função de limpeza enviada (ou registrada) por pthread_cleanup_push ().
Nota: (1) Quando um thread é cancelado, essas funções de limpeza serão executadas na ordem inversa do registro push e serão removidas da pilha após a execução
(2) Quando o encadeamento é encerrado chamando a função pthread_exit (), essas funções de limpeza são chamadas, mas se a instrução return for usada para encerrar o encadeamento, essas funções de limpeza não serão chamadas
(3) Quando a função pthread_cleanup_pop () é chamada e seu parâmetro é diferente de zero, a função de limpeza no topo da pilha é chamada para ser executada e, após a execução, a função de limpeza é removida da pilha
(4) A chamada para a função pthread_cleanup_push () e a função pthread_clean_up () deve aparecer em pares, caso contrário, o erro de compilação