Na verdade, objetos sincronizados sempre sao mais lentos do que objetos nao-sincronizados, para garantir que diferentes threads nao acessem o mesmo objeto/metodo/bloco de codigo simultaneamente.
Portanto, a menos que vc esteja pensando em criar um ambiente multithread ou alterar os valores da colecao, nao vale à pena retornar uma colecao sincronizada. :!:
Primeiro exemplo : Onde eu retorno a colecao normal.
public Collection consultar(FiltroCargo pFiltroCargo) throws SQLException {
ArrayList colecao = new ArrayList();
rs = prepStatment.executeQuery();
while (rs.next())
{
vo = new VOCliente();
vo.setNomw(rs.getInt("NUM") );
vo.setDesc( rs.getString("DESc") );
colecao.add(vo);
}
} catch (SQLException e) {
throw new SQLException(e.getMessage());
}
return colecao;
}//fim do metodo consultar
Segundo Exemplo : Onde eu retorno a coleção sincornizada
public Collection consultar(FiltroCargo pFiltroCargo) throws SQLException {
ArrayList colecao = new ArrayList();
rs = prepStatment.executeQuery();
while (rs.next())
{
vo = new VOCliente();
vo.setNomw(rs.getInt("NUM") );
vo.setDesc( rs.getString("DESc") );
colecao.add(vo);
}
} catch (SQLException e) {
throw new SQLException(e.getMessage());
}
return Collections.synchronizedCollection(colecao);
}//fim do metodo consultar
Sera que eu ganho mas desempenho quanto a velocidade se eu retorna a colecao sincronizada !?
Agradeço a quem ajudar !!