Mini-prova

Paulo Borba

Centro de Informática

Universidade Federal de Pernambuco

 

Recife, 23 de agosto de 2002

 


  1. O método inserir definido abaixo seria seguro em um ambiente concorrente? Caso duas pessoas tentem inserir duas contas ao mesmo tempo, a implementação do método garante que as duas contas serão sempre inseridas no array? Justifique brevemente a sua resposta. Caso necessário, o que teria que ser alterado nesta classe para garantir a segurança em um ambiente concorrente?

    class RepositorioContasArray {
      private Conta[] contas;
      private int proxima;
      RepositorioContasArray(int tamanho) {
        contas = new Conta[tamanho];
        proxima = 0;
      }
      void inserir(Conta conta) {
        contas[proxima] = conta;
        proxima = proxima + 1;
      }