Quais as vantagens de se utilizar threads?

O que s�o Threads?

Cada programa, ou processo, possui normalmente um fluxo de controle. Assim o programa � executado seq�encialmente passo a passo com seu �nico fluxo de controle. � nesse ponto que entram as threads, com threads podemos ter mais de um �nico fluxo de controle em nosso aplicativo. Assim o nosso aplicativo agir� como se tivessem v�rios aplicativos com partes de seu c�digo atuando em paralelo no sistema. Threads s�o, portanto, entidades escalonadas para executarem na CPU, por isso a no��o de paralelismo, pois as threads concorrer�o pelo processador juntamente com mais threads que tiverem no programa, ou concorrer� apenas com o fluxo do programa.

Threads permitem que m�ltiplas execu��es ocorram no mesmo ambiente do aplicativo com um grande grau de independ�ncia uma da outra, portanto, se temos muitas threads executando em paralelo no sistema � an�logo a m�ltiplos aplicativos executando em paralelo em um computador.

Devemos salientar que o termo multithreading nada mais � do que um aplicativo que possui m�ltiplas threads nesse mesmo aplicativo. Tamb�m ressaltamos que threads compartilham o mesmo espa�o de endere�amento do aplicativo em execu��o, portanto, nota-se que ao inv�s de criarmos um novo aplicativo para fazer uma determinada tarefa para o nosso aplicativo, � muito mais barato apenas criar uma thread para esse fim, visto que criar um aplicativo requer muito processamento por parte do processador, al�m de alocar mais mem�ria para o novo aplicativo.

O Uso de Threads

Agora que sabemos o que s�o threads, resta sabermos para que elas servem. Pois bem, a principal raz�o para existirem as threads � termos a possibilidade de ocorrem muitas atividades ao mesmo tempo em nossa aplica��o. Al�m disso, podemos observar que o nosso modelo de programa��o se torna muito mais simples � medida que decompomos a nossa aplica��o em m�ltiplos threads que executam quase em paralelo, ou mesmo em paralelo no caso de termos mais de uma CPU.

Quando falamos em desempenho, falamos em uma CPU o menos tempo poss�vel ociosa, ai novamente que entram as threads. Se pegarmos como exemplo um aplicativo qualquer que faz bastante uso do disco r�gido, ou qualquer dispositivo de E/S, para algum fim como ler um arquivo em disco, pesquisar nomes em um arquivo, ou armazenar nomes em um arquivo, podemos tornar nossa aplica��o mais �til e r�pida se usamos threads, pois enquanto uma opera��o de E/S fosse feita uma thread poderia estar usando o processador para algum fim ao aplicativo.

Exemplificando Threads

Para entendermos melhor as threads nada melhor que um exemplo. Consideramos, por exemplo, um processador de textos. Suponhamos que estamos escrevendo um artigo em um processador de textos, para um processador de textos considerado no m�nimo bom, ter�amos que ter duas threads, uma delas seria respons�vel por interagir com o usu�rio, e a outra thread seria respons�vel por corrigir o texto, realizando isso em segundo plano. Assim enquanto o usu�rio digitaria o seu texto o processador de textos iria processando o texto, enquanto ap�s isso o segundo thread seria respons�vel por corrigir os textos que iriam sendo digitados pelo usu�rio caso estivessem errados. Que tal se ainda colocassem um terceiro thread que seria respons�vel por salvar o documento de tempo em tempo para que caso venha a faltar energia o usu�rio n�o perdesse o documento.

Essa � a id�ia de threads, onde temos a nossa aplica��o dividida em pequenos m�dulos funcionais, fazendo da aplica��o ainda mais completa.

Conclus�o

No artigo de hoje voc� aprendeu sobre threads, um assunto que � muito importante e suportada em todas as atuais linguagens de programa��o. Threads � um assunto ainda mais extenso e voc� poder� procurar ainda bastante coisa sobre este assunto, al�m disso, � uma pr�tica muito importante para voc� adotar em seus programas, pois como foi dito anteriormente com thread podemos ter ganho de performance e tornar nosso programa ainda mais modular.

Confira outros conte�dos:

Plano PRO

  • Forma��o FullStack completa
  • Projetos reais
  • Professores online
  • Exerc�cios gamificados
  • Certificado de autoridade

Quais as vantagens de se utilizar threads?

Por Higor Em 2007

  1. É mais rápido criar uma thread que um processo.
  2. É mais rápido terminar uma thread que um processo.
  3. É mais rápido chavear entre threads de um mesmo processo.
  4. Threads podem se comunicar sem invocar o núcleo já que compartilham memória e arquivos.
  5. no caso de comunicação entre processos, a intervenção do núcleo é necessária para proteção e sincronização.
Contudo
Suspender um processo implica em suspender todas as threads deste processo já que compartilham o mesmo espaço de endereçamento
O término de um processo implica no término de todas as threads desse processo
fonte: apostila

Quais as vantagens de threads?

Os threads possuem vantagens e desvantagens ao dividir um programa em vários processos. Uma das vantagens é que isso facilita o desenvolvimento, visto que torna possível elaborar e criar o programa em módulos, experimentando-os isoladamente no lugar de escrever em um único bloco de código.

O que são threads quais suas vantagens de utilização?

Threads permitem que múltiplas execuções ocorram no mesmo ambiente do aplicativo com um grande grau de independência uma da outra, portanto, se temos muitas threads executando em paralelo no sistema é análogo a múltiplos aplicativos executando em paralelo em um computador.

Quais as desvantagens de threads?

Desvantagens: • A troca entre threads implica acções do kernel e isto tem um custo que pode ser significativo. Uma biblioteca de threads implementada ao nível de utilizador. Muitas das chamadas ao sistema são "bloqueantes" e o kernel bloqueia processos – neste caso todos as threads dum processo podem ser bloqueados.

São vantagens de usar threads em sistemas distribuídos?

A vantagem no uso de threads é minimizar a alocação de recursos com a criação de novos processos. Threads compartilham o processador da mesma forma que processos. Também passam por mudanças de estados ( execução, espera e pronto ).