public void addMove(int partIndex, PartitionChangeMove<Solution_> move) {
        long eventIndex = nextEventIndexMap.get(partIndex).getAndIncrement();
        PartitionChangedEvent<Solution_> event = new PartitionChangedEvent<>(
                partIndex, eventIndex, move);
        moveEventMap.put(event.getPartIndex(), event);
        queue.add(event);
    }
public void addMove(int partIndex, PartitionChangeMove<Solution_> move) {
        long eventIndex = nextEventIndexMap.get(partIndex).getAndIncrement();
        PartitionChangedEvent<Solution_> event = new PartitionChangedEvent<>(
                partIndex, eventIndex, move);
        moveEventMap.put(event.getPartIndex(), event);
        queue.add(event);
    }
public void addMove ( int partIndex , PartitionChangeMove < Solution_ > move ) { long eventIndex = nextEventIndexMap . get ( partIndex ) . getAndIncrement ( ) ; PartitionChangedEvent < Solution_ > event = new PartitionChangedEvent <> ( partIndex , eventIndex , move ) ; moveEventMap . put ( event . getPartIndex ( ) , event ) ; queue . add ( event ) ; }
This method is thread-safe.
The previous move(s) for this partIndex (if it hasn't been consumed yet), will be skipped during iteration.
@param partIndex {@code 0 <= partIndex < partCount}
@param move never null
@see BlockingQueue#add(Object)
This method is thread - safe . The previous move ( s ) for this partIndex ( if it hasn t been consumed yet ) will be skipped during iteration .