Per gli excanger, non li ho mai utilizzati, pero' a naso se solo 4 possono essere attivi in uno stesso momento, direi 4. Per la seconda, servirebbe il codice.
Probabilmente hai fatto una cosa tipo:
codice:
public class StrutturaDati<V extends Object> {
   private Exchanger<V>[] data;

   public StrutturaDati(int capacità) {
      data = new Exchanger<V>[capacità];
      for(int i=0; i<data.length; i++)
          data[i] = new Exchanger<V>();
      //eccetra
   }
}
Che non e' corretto (http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf).
Prova a mettere
codice:
public class StrutturaDati<V extends Object> {
   private Exchanger<V>[] data;

   public StrutturaDati(int capacità) {
      data = new Exchanger[capacità];
      for(int i=0; i<data.length; i++)
          data[i] = new Exchanger<V>();
      //eccetra
   }
}
Non so se e' il modo giusto di procedere in questi casi, ma almeno dovrebbe funzionare.