我正在尝试实现以下目标:
我有两张地图(尚不确定哪些可以安全使用并且可以正常工作)
两者都像Map<Integer, Object>
(现在从Map1
和Map2
总是先将Object
插入到Map1
每次将Integer
插入到AtomicInteger
中时,Object
的值将随Map1
的增加而增加。
插入后,我需要从Object
中获取第一个插入的Map1
并将其移至Map2
,然后使用Object
执行异步操作
在该操作的回调中,我需要从Object
中删除Map2
并重复Map1
属于队列,并且Map2
包含所有正在运行的操作。可以将运行操作的数量一次调整为大于1。
例如,我连续执行5个操作,运行的最大数量为4,则顺序为:
将所有5个具有0、1、2、3、4个ID的Map1
放入。然后应删除索引0、1、2、3,并将其移至Map2
。当Object
中的第一个Map2
准备就绪时,应将其删除,而Map1
中的最后一个Map2
移至ConcurrentHashMap
。
我尝试使用Iterator.next()
,但是从最后插入的项目开始使用Map2
进行迭代,并且在对象准备就绪时从删除项目时遇到了一些问题。
最佳答案
Map1 is sort of a queue
使用作为FIFO数据结构的阻塞队列。