diferente de um sistema operacional multi-tarefa tradicional, em que processos sao tipicamente independentes, carregam consideravel estado da informacao, tem endereco de memoria separado e interagem somente atraves de mecanismos de inter-processos de comunicacao. As threads, por outro lado, compartilham o estado da informacao de processos unicos, e compartilham memoria e outros recursos diretamente.A troca de contexto atraves de linha de execucao num mesmo processo e tipicamente mais rapida que a troca de contexto entre processos diferentes. Sistemas como o Windows NT e o OS/2 sao feitos para ter linha de execucao "baratas" e processos "caros", enquanto em outros sistemas operacionais nao ha grandes diferencas.O multithreading e um modelo de programacao popular que permite a execucao de multiplas linha de execucao dentro de um contexto simples, compartilhando recursos do processo, e capazes de executar de forma independente. O modelo de programacao em linha de execucao fornece ao desenvolvedor uma execucao simultanea. Entretanto, a aplicacao mais interessante da tecnologia ocorre quando ela e utilizada em um processo simples permitindo uma execucao paralela em sistemas multi-processados.Um sistema multi-threaded possui um melhor desempenho que um sistema de computadores com multiplas CPUs e com multiplos nucleos, ou que um cluster de maquinas. Isto acontece porque a linha de execucao empresta a ela mesmo uma execucao simultanea. Em alguns casos, o programador precisa ter cuidado em evitar condicoes de concorrencia e outros comportamentos inesperados.Para um dado ser manipulado corretamente, as linhas de execucao frequentemente precisarao ser sincronizadas, para que os dados sejam processados na ordem correta. As linha de execucao podem tambem executar operacoes atomicas (frequentemente implementadas usando semaforos) com intuito de prevenir que dados comuns sejam simultaneamente modificados ou lidos enquanto o processo esta sendo modificado.Os sistemas operacionais implementam as linhas de execucao de duas formas: preempcao multithreading ou multithreading cooperativa. A preempcao multithreading e geralmente considerada uma implementacao superior, porque permite ao sistema determinar quando uma troca de contexto pode acontecer. A multithreading cooperativa, por outro lado, confia nas threads para ceder o controle, uma vez que elas estao paradas em um ponto. Isto pode criar um problema se a linha de execucao estiver esperando um recurso tornar-se disponivel. A desvantagem da preempcao multithread e que o sistema pode fazer uma troca em um tempo inapropriado, causando uma inversao de prioridade ou outros efeitos ruins que podem ser evitados por uma multithreading cooperativa.Em geral: Criar um processo pode ser caro em termos de tempo, memoria, e sincronizacao entre processos. As linhas de execucao podem ser criadas sem a replicacao do processo inteiro. O trabalho de criar uma linha de execucao pode ser feito no espaco do usuario. Como as linhas de execucao partilham o espaco de enderecamento a comunicacao entre elas e mais rapida. O tempo gasto para troca de linha de execucao e menor, em parte por que nao ha necessidade de troca de espaco de enderecamento.Beneficios.Os beneficios da programacao multithread podem ser divididos em quatro categorias pricipais:1. Reponsabilidade: O uso de multithreads em uma aplicacao interativa pode pemitir que um programa continue funcionando mesmo que parte dele esteja bloqueado ou realizando uma operacao longa,