Olá, possuo as três classe abaixo, é claro que está faltando mais coisa, mas minha dúvida é se a forma como estou acessando as listas (tarefasList e trabalhadorList) está correta, ou se terei algum problema de desempenho ou qualquer outro, por favor, me expliquem que tipo de problema se houver.
public class Gerente {
List<Tarefas> tarefasList;
Map<String, Trabalhador> trabalhadorList;
GerenteEstoque gerenteEstoque;
GerenteVendas gerenteVendas;
public Gerente() {
this.tarefasList = Collections.synchronizedList(new LinkedList<Tarefas>());
this.trabalhadorList = Collections.synchronizedMap(new LinkedHashMap<String, Trabalhador>());
this.gerenteEstoque = new GerenteEstoque(this);
this.gerenteEstoque.start();
this.gerenteVendas = new GerenteVendas(this);
this.gerenteVendas.start();
}
}
public class GerenteEstoque extends Thread {
Gerente gerente;
List<Tarefas> tarefasList;
Map<String, Trabalhador> workersList;
Tarefas tarefa;
public GerenteEstoque(Gerente gerente) {
this.gerente = gerente;
this.tarefasList = this.gerente.tarefasList;
this.trabalhadorList = this.gerente.trabalhadorList;
}
public void run() {
while (true) {
this.tarefa = this.tarefasList.take();
System.out.println("Gerente estoque: recebi uma tarefas, vou enviar para o trabalhador: " + this.trabalhadorList.get());
}
}
}
public class GerenteVendas extends Thread {
Gerente gerente;
List<Tarefas> tarefasList;
Map<String, Trabalhador> workersList;
Tarefas tarefa;
Trabalhador trabalhador;
public GerenteVendas(Gerente gerente) {
this.gerente = gerente;
this.tarefasList = this.gerente.tarefasList;
this.trabalhadorList = this.gerente.trabalhadorList;
}
public void run() {
while (true) {
this.trabalhador = this.tarefasList.trabalhador();
System.out.println("Gerente Vendas: recebi um novo trabalhador: "+ this.trabalhador.getID());
}
}
}
Achei um exemplo parecido na internet, por isso que estou implementando desta forma, mas não sei se esta correto. Outra forma que pensei em implementar é cada gerente instanciar sua própria lista, aí cada gerente adiciona em uma deteminada lista quando desejar.
Se alguém cosneguir me ajudar.