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:

threads.java
public class MyThread extends Thread
{
   int threadID;
 
   // construtor
   MyThread (int ID)
   {
      threadID = ID;
   }
 
   // corpo da thread
   public void run ()
   {
      int i ;
 
      for (i = 0; i< 100 ; i++)
        System.out.println ("Hello from t" + threadID + "!") ;
   }
 
   // programa principal
   public static void main (String args[])
   {
      // 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 ();
   }
}

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, e outra com controle de concorrência através de um mutex. Compare os resultados obtidos em termos de exatidão do resultado e de velocidade de execução.

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.

  • sod/experimentos_em_coordenacao.txt
  • Última modificação: 2011/09/14 14:54
  • por maziero