O que é uma aplicação multithreaded?

eu estou olhando para aprender mais sobre threading e eu queria saber: o que é uma aplicação multithreaded?

Author: i_am_jorf, 2009-08-21

9 answers

Multithreading como um modelo de programação e execução generalizado permite que vários threads existam dentro do contexto de um único processo. Estes threads compartilham os recursos do processo, mas são capazes de executar independentemente. O modelo de programação threaded fornece aos desenvolvedores uma abstração útil da execução simultânea. No entanto, talvez a aplicação mais interessante da tecnologia é quando ela é aplicada a um único processo para permitir a execução paralela em um sistema multiprocessador.

Isso significa que um único processo pode ter muitas "funções" diferentes Executando simultaneamente , permitindo que a aplicação use melhor o hardware disponível (múltiplos núcleos/processadores). Os tópicos podem se comunicar entre eles( eles têm memória compartilhada ), mas é um problema difícil para ter cada tópico se comportar bem com outros ao acessar objetos compartilhados/memória.

A roscagem permite uma aplicação para permanecer responsivo, sem o uso de um catch all application loop, ao fazer operações longas.

Por exemplo, um programa não roscado {[[0]} não lhe permitiria fazer nada até a cópia terminar.

Threading ajuda com problemas complexos, lenghty, independentes, mas traz consigo muito mais complexidade , o que torna difícil mesmo para programadores experientes.

 20
Author: Esteban Küber, 2017-05-23 11:54:28
É uma aplicação que pode fazer várias coisas ao mesmo tempo. Por exemplo, se você estiver amarrando um documento em palavra, há um tópico respondendo ao seu teclado, há um tópico que está checando sua ortografia, há um que está checando sua gramática, pode haver outro tópico salvando uma cópia de segurança de seu documento no caso do programa falhar.
 2
Author: eduffy, 2009-08-21 16:57:47

É uma aplicação que usa mais de um thread internamente para atingir o seu objectivo.

Existem muitos exemplos, pois a maioria das aplicações que precisam interagir com um usuário têm um thread UI e um conjunto de threads de trabalho. Isto é feito para permitir que a IU permaneça responsiva enquanto a aplicação está ocupada fazendo alguma tarefa.

 1
Author: Welbog, 2009-08-21 16:55:23

Uma aplicação multi-threaded aproveita-se de executar várias tarefas ao mesmo tempo para acelerar as coisas. Multithreading também pode tirar partido de múltiplas máquinas de CPU.

 1
Author: Mark Redman, 2009-08-21 16:56:36

É um programa que usa mais de um thread . Os diferentes threads podem acessar estruturas de memória compartilhada (normalmente usando mecanismos apropriados de sincronização , por exemplo bloqueios). Um exemplo seria um programa que transfere alguns arquivos simultaneamente, cada download usando um tópico diferente para acelerar o processo de download (existem maneiras mais sofisticadas de conseguir isso, este é apenas um exemplo).

A multi-threading é frequentemente utilizada na ligação CPU tarefas, que se beneficiam de usar todos os núcleos em um computador moderno (por exemplo, tentando quebrar um cypher usando múltiplos processadores).

A diferença entre uma thread e um processo é que diferentes processos geralmente não podem compartilhar diretamente a memória e estruturas de dados, embora existam vários mecanismos para compartilhar informações entre processos (eles são geralmente mais caros do que compartilhar informações entre threads).

 0
Author: ripper234, 2009-08-21 17:00:33
O que ele disse

A implementação de threads e processos difere de um sistema operacional para outro, mas na maioria dos casos, um thread está contido dentro de um processo. Múltiplos threads podem existir dentro do mesmo processo e compartilhar recursos como memória, enquanto diferentes processos não compartilham esses recursos.

 0
Author: melo, 2014-05-03 08:50:45

Multithreading é um mecanismo de programação que você pode implementar a fim de ganhar um tempo notável.

Então uma aplicação de Multithreading é uma aplicação que usa mais de dois threads para dois processadores ou mais e não faz sentido ter mais threads do que Processador que deveria ser o mesmo.

 0
Author: ET-TAOUSY Zouhair, 2018-03-26 11:30:33

As aplicações Multithreaded são as que utilizam o conceito de concorrência, ou seja, são capazes de processar mais do que uma tarefa em paralelo.

Um exemplo simples pode ser um word-document no qual, verificação ortográfica, resposta ao teclado, formatação, etc., acontece ao mesmo tempo ou simultaneamente. Internamente, existem diferentes threads que estão fazendo essa tarefa de forma independente.

Fonte : https://docs.oracle.com/javase/tutorial/essential/concurrency/

 0
Author: Shashank Bodkhe, 2018-08-03 10:57:23

Para thread u tem que saber o processo que não é nada mais que uma instância do programa tome um exemplo de pintura no windows quando u executá-lo,ele faz uma instância ou processo de programa de pintura. Quando u abrir uma imagem mulitple na janela difenrent u r fazendo um processo múltiplo desse programa. Da mesma forma thread é uma unidade de processo média U ver uma janela de pintura, mas em segundo plano há vários threads eg.cor,pincel,lápis, etc. O Thread existe para reduzir a carga de trabalho do processador

 -1
Author: techboyz, 2014-08-07 07:14:16