498837968
1817 palavras
8 páginas
THREADSO modelo de processo apresentado anteriormente supôs que um processo era um programa em execução com um único fluxo de controle. Muitos sistemas operacionais modernos agora oferecem recursos para que um processo contenha múltiplos fluxos de controle, ou threads. Este capítulo apresenta muitos conceitos associados com os sistemas de computação com threads múltiplos e aborda o uso de Java para criar e manipular threads.5.1 - Visão Geralcenter157416500Um thread, às vezes chamado de processo leve (lightweight process), é uma unidade básica de utilização de CPU; compreende um ID de thread, um contador de programa, um conjunto de registradores e uma pilha. Compartilha com outros threads pertencentes ao mesmo processo sua seção de código, seção de dados e outros recursos do sistema operacional, tais como arquivos abertos e sinais. Um processo tradicional, ou pesado (heavyweight), tem um único fluxo de controle. Processos com múltiplos threads podem realizar mais de uma tarefa de cada vez. A Figura 5.1 ilustra a diferença entre um processo de thread único tradicional e um processo com múltiplos threads.
Figura 5.1 Processos com um e com múltiplos threads.
Muitos pacotes de software que executam em PCs desktop modernos têm múltiplos threads. Uma aplicação geralmente é implementada como um processo separado com vários threads de controle. Um navegador Web pode fazer um thread exibir imagens ou texto enquanto outro recupera dados da rede. Um processador de textos pode ter um thread para exibir gráficos, outro thread para ler sequências de teclas do usuário e um terceiro thread para efetuar a verificação ortográfica e gramatical em segundo plano.
Existem também situações em que uma única aplicação pode ser solicitada a realizar várias tarefas semelhantes. Por exemplo, um servidor Web aceita pedidos de cliente para páginas Web, imagens, som e assim por diante. Um servidor Web ocupado pode ter vários (talvez até centenas) de clientes acessando-o de forma