Multithreading e multiprocessamento são termos associados com a velocidade com que os programas de computador executado. Ambos são processos que requerem uma união de conhecimento de programação e desenvolvimento de hardware , a fim de ser adequadamente utilizado . Os dois termos não sempre são mutuamente exclusivos , que são usados em conjunto para aumentar a eficiência de um computador . Diferenças de hardware
multiprocessamento requer , como o nome indica , múltiplos núcleos de processamento físico. Anteriormente, várias placas-mãe de processador veio com vários slots separados para entrada de unidades centrais de processamento (CPU). Hoje, as tecnologias mais recentes de fabricantes como AMD e Intel permitem múltiplos núcleos de processamento a ser construído em uma única CPU " chip. " Multithreading não é inteiramente sem o seu próprio hardware, mas requer apenas placas-mãe que suportam instruções de código de multithreading. A maioria das placas-mãe modernas incluem esta capacidade.
Individual Programa Versus Sistema Operacional
programadores usam ferramenta multithreading define para permitir que programas a executar várias tarefas em paralelo. Este processamento "pipeline" dar a ilusão de duas funções que ocorrem simultaneamente , mas , na verdade, usa a grande quantidade de poder de processamento e algoritmos eficientes para alternar rapidamente entre uma função e outra . Como tal , a utilização de multithreading depende do código do próprio programa .
Multiprocessamento , por outro lado , tem um acesso mais transparente para a energia de múltiplos fluxos de processamento . Um indivíduo funções acesso ao programa de multiprocessamento , sob os auspícios do sistema operacional , como o Mac OS da Apple ou Microsoft Windows . Como tal , os programas não precisam ser particularmente otimizado com multithreading comandos para utilizar o poder de processamento paralelo . Multithreading pode realmente ser usado em conjunto com multiprocessamento.
Independente contra Pipeline de Processamento
multiprocessamento e multithreading diferem fundamentalmente na forma como as instruções do programa são processados. Em multiprocessamento , duas ou mais instruções podem ser executadas simultaneamente , através de um processo referido como " processamento paralelo . " Multithreading , no entanto, abre dutos individuais para cada instrução, e distribui o poder de processamento entre esses dutos periodicamente.
Essa diferença é em grande parte imperceptível quando a carga do processador é pequena. No entanto, instruções de uso intenso do processador em simultâneo vai começar a gaguejar em um ambiente multithreading puro. As mesmas funções serão mais imunes a esses efeitos em um ambiente de multiprocessamento.
Correção de Erros
Multithreading abre fluxos separados dentro de um único processo. Os fluxos parecer processos individuais , mas utilizam um espaço de endereçamento compartilhado na memória do computador dentro do mesmo processo . Multiprocessamento , no entanto, abre processo para executar múltiplas funções simultâneas e estes processos cada obter a sua própria parcela de memória. Quando um único processo falhar em um ambiente de multiprocessamento, todos os outros processos são poupados , no entanto, falhas em um indivíduo "threads" não está isolada de outros tópicos , e, finalmente, derrubar todo o processo. O resultado é a possibilidade de falhas maiores em condições de multithreading.