O que é uma aplicação multithreaded?
eu estou olhando para aprender mais sobre threading e eu queria saber: o que é uma aplicação multithreaded?
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.
É 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.
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.
É 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).
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.
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.
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/
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