COmputação
Por: Grauzely • 3/6/2015 • Trabalho acadêmico • 1.365 Palavras (6 Páginas) • 943 Visualizações
[pic 1][pic 2][pic 3][pic 4][pic 5][pic 6][pic 7][pic 8][pic 9]
[pic 10]
- O que é uma thread e quais as vantagens em sua utilização?
Thread é um pequeno programa que trabalha como um sub-sistema independente de um programa maior, executando alguma tarefa específica. Um programa dividido em vários threads pode rodar mais rápido que um programa monolítico, pois várias tarefas podem ser executadas simultaneamente. Os vários threads de um programa podem trocar dados entre sí e compartilhar o mesmo espaço de memória e os mesmos recursos do sistema. Para o programador, existem vantagens e desvantagens em dividir um programa em vários threads. Por um lado isso facilita o desenvolvimento, pois é possível desenvolver o programa em módulos, testando-os isoladamente, ao invés de escrever um único bloco de código. Mas, por outro lado, com vários threads o trabalho torna-se mais complexo, devido à interação entre eles.
- Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento entre threads de um mesmo processo?
Os threads de um mesmo processo compartilham o mesmo espaço de endereçamento, não existe qualquer proteção no acesso à memória, permitindo que um thread possa alterar facilmente dados de outros. Para que threads trabalhem de forma cooperativa, é fundamental que a aplicação implemente mecanismos de comunicação e sincronização entre threads, a fim de garantir o acesso seguro aos dados compartilhados na memória. Por outro lado, o compartilhamento do espaço de endereçamento é extremamente simples e rápido.
- Dê exemplos do uso de threads no desenvolvimento de aplicativos
Editores de texto
Planilhas Eletronicas.
- Quais os benefícios do uso de threads em ambiente-servidor?
O benefício do uso de threads em ambientes cliente-servidor é a melhoria no desempenho da aplicação servidora. Além disso, a comunicação entre os threads no servidor pode ser feita através de mecanismos mais simples e eficientes.
- Escreva um programa em Java que faça uso de duas threads para somar os elementos de um vetor de inteiros e calcular a média de maneira colaborativa. Cada thread deve gerar a média de metade dos elementos. Use variáveis memória compartilhada e monitors para sincronização das tarefas.
- package threads;
- public class Exercicio6 {
- static int vetor[] = {8, 8, 8, 8, 8, 8, 8, 8, 8, 8};
- static class Thread1 implements Runnable{
- private double media;
- public void run()
- {
- double soma = 0;
- int cont = 0;
- for(int i=0; i<5; i++)
- {
- soma = soma + vetor[i];
- cont++;
- }
- media = soma / cont;
- System.out.println(media);
- }
- public double getMedia1()
- {
- return this.media;
- }
- }
- static class Thread2 implements Runnable{
- private double media;
- public void run()
- {
- double soma = 0;
- int cont = 0;
- for(int i=5; i<10; i++)
- {
- soma = soma + vetor[i];
- cont++;
- }
- media = soma / cont;
- System.out.println(media);
- }
- public double getMedia2()
- {
- return this.media;
- }
- }
- static public void calcularMediaFinal(double media1, double media2)
- {
- System.out.println("Média: "+ ((media1 + media2) / 2));
- }
- public static void main(String[] args) {
- Thread1 thread = new Thread1();
- Thread utilizandoRunnable = new Thread(thread);
- Thread2 thread2 = new Thread2();
- Thread utilizandoRunnable2 = new Thread(thread2);
- utilizandoRunnable.start();
- utilizandoRunnable2.start();
- calcularMediaFinal(thread.getMedia1(), thread2.getMedia2());
- }
- }
...