Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
sod:experimentos_em_coordenacao [2011/09/14 17:47] – maziero | sod:experimentos_em_coordenacao [2011/09/14 17:54] (atual) – maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Experimentos em coordenação ====== | ||
+ | |||
+ | Esta prática consiste em implementar alguns problemas clássicos de coordenação usando a linguagem Java. | ||
+ | |||
+ | Um exemplo de criação de //threads// em Java está apresentado a seguir: | ||
+ | |||
+ | <code java threads.java> | ||
+ | public class MyThread extends Thread | ||
+ | { | ||
+ | int threadID; | ||
+ | |||
+ | // construtor | ||
+ | | ||
+ | { | ||
+ | threadID = ID; | ||
+ | } | ||
+ | |||
+ | // corpo da thread | ||
+ | | ||
+ | { | ||
+ | int i ; | ||
+ | |||
+ | for (i = 0; i< 100 ; i++) | ||
+ | System.out.println (" | ||
+ | } | ||
+ | |||
+ | // programa principal | ||
+ | | ||
+ | { | ||
+ | // cria três threads | ||
+ | MyThread t1 = new MyThread (1); | ||
+ | MyThread t2 = new MyThread (2); | ||
+ | MyThread t3 = new MyThread (3); | ||
+ | |||
+ | // inicia as três threads | ||
+ | t1.start (); | ||
+ | t2.start (); | ||
+ | t3.start (); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Soma multi-thread (50%) ==== | ||
+ | |||
+ | Escrever um programa com //threads// que incrementam de forma concorrente um contador global inteiro. Use 100 threads, cada uma incrementando o contador 100.000 vezes. Construa uma solução simples, sem controle de concorrência, | ||
+ | |||
+ | ==== O Jantar dos filósofos (25%) ==== | ||
+ | |||
+ | Implemente o problema do Jantar dos Filósofos descrito na aula passada; sem prevenção de impasses (solução básica) e com prevenção de impasses através do algoritmo do saleiro. | ||
+ | |||
+ | ==== O Jantar dos selvagens (25%) ==== | ||
+ | |||
+ | [[so: | ||
+ | |||
+ | |||