? Os programas de computador pode executar vários blocos de código , ao mesmo tempo , através de concorrência programa. Isto permite uma grande flexibilidade , em que os programas podem lidar com solicitações ou dados separadamente do programa principal , sem afetar a execução do programa em si . Programas de fazer isso através do uso de threads. A administração desses segmentos de execução inclui a gestão dos seus recursos e como o programa tem a intenção de controlá-los. A diferença entre a forma como um programa mantém tópicos é representado na diferença entre " acopláveis " e " tópicos destacados " . Threads
em programação de computadores , " multithreaded " ou " concorrente" de programação refere-se à técnica de criação de segmentos separados de execução no mesmo programa . Cada thread em um programa executa algum código ao lado dos outros segmentos em que o programa , permitindo que vários blocos de código para ser executado ao mesmo tempo . Quando um programa começa , há sempre uma thread , o thread " main" , a partir do qual outros segmentos podem gerar para lidar com outros blocos de código .
Acopláveis Threads
Com diferentes threads em execução ao mesmo tempo dentro do mesmo programa , a manutenção fio torna-se crucial. Uma maneira de manter tópicos é usar os recursos de "join" . Tópicos acopláveis correr ao lado de outros tópicos de um programa, como é típico de threads. No entanto, o thread principal pode esperar para se juntar ao segmento gerado . O principal segmento, em vez de executar mais de código , pode usar a função de juntar-se do fio para permitir que outro segmento para concluir sua tarefa. O segmento gerado , uma vez terminado, retorna um código de saída sinalizando uma saída normal ou um erro , ea thread principal continua a execução .
Separada Threads
Moradia tópicos trabalhar um pouco diferente. Quando um thread é explicitamente destacada do seu segmento principal , já não tem conexão com esse segmento . As segmento é executado e saídas , como qualquer outro segmento e encerra quando terminar. A thread principal não pode monitorar o segmento gerado . O segmento gerado termina quando terminar , ou seja, o segmento principal não tem que participar de forma explícita com o fio mais tarde no programa .
Resolução de threads em execução
Juntando e desanexação tópicos permite dois modos diferentes de gerenciamento de threads . Ao deixar um fio como acopláveis , o programador pode forçar o programa para se juntar com os fios mais tarde, em execução. Isso deve ocorrer se juntar para liberar os recursos utilizados pelo segmento gerado , como a pilha ea memória heap. Um segmento individual, uma vez destacada , executa até terminar , eo sistema automaticamente recupera os recursos utilizados . No entanto, o thread principal não pode verificar o status de um segmento separado através de uma junção. Portanto, o programa principal não sabe se a gerou , linha destacada completou a sua tarefa com sucesso , porque nunca recebe um código de saída do fio .