Duvida Programação concorrente

Olá tenho a seguinte situação … minha duvida está no final.

Por se tratar de um software que está sendo desenvolvido para terceiros não fui autorizado a postar o código. Mas vou tentar colocar em pseudocodigo o básico.

classe faztudo {

instacia gerente ger;

 ger.novo_trabalhador("w1","canal de comunicação")

}

classe gerente {

novo_trabalhador (string t, string c){

      instacia trabalhador trab;

      trab.quemehmeugerente("canal de comunicação", gerente).

       add trab na fila de trabalhadores

       trab.setarID

       envia_trabalhado_se_Puder()
}

 envia_trabalhado_se_Puder() {

          se existir trabalhador na fila pega um trabalho e envia
          trab.novotrabalho(trabalhoID, trablhado)
 }

 recebe_resposta(IDdotrabalhador, resposta){

      [b]pego o a reposta e adiciono em uma fila de respostas. e preciso pegar esse trabalhador e adicionar na fila de trabalhadores novamente; o problema é que essa fila ela adiciona "classe trabalhador" e nao o IDdotrabalhador. eu não estou entendendo como fazer o processo inverso, digamos assim :D. [/b]
  }

} // FIM DA CLASSE GERENTE

classe trabalhador() {
Gerente ger;

   quemehmeugerente("canal de comunicação", gerente) {
       ger = gerente;
   }
  novotrabalho(trabalhoID, trablhado) {
      pega o trabalho, adiciona em uma fila, e resolve, adiciona em uma outra fila a resposta
  }

  pega a resposta da fila, e envia a resposta para o gerente
  ger.recebe_resposta(IDdotrabalhador, resposta);

}

Bom, eu não posso mesmo postar o código, basicamente o funcionamento é esse descrito acima, e se vocês poderem me ajudar com o que tem aí, fico grato. A minha duvida esta destacada em NEGRITO, ou seja, eu não sei o que fazer quando um gerente recebe a resposta do trabalhador, pois após esse trabalhador enviar a resposta quer dizer que ele está livre, e preciso add ele a fila de trabalhadore mas essa fila só aceita a classe trabalhador. Se ainda poder ajudar, a fila está declarada da seguinte forma:
Vector workers = new Vector();