It's not so complicated I think. We just chagne IntArrayList to same synchronized collection and have to use ArrayBuffer with Synchronization.