问题描述
- java多线程中两个容器之间的同步
-
写了一个多线程的爬虫(对多线程不熟悉),但是每次队列中都有重复的元素,我把代码逻辑贴上来,大家帮我看一下,谢谢了:在进程中:
queue = LinkedBlockingQueue
set = ConcurrentSkipListSet
在每个进程中使用了bfs
bfs:
while(!queue.empty()){
s = queue.poll()
//。。。逻辑代码
set.add(s)
//对s所有子状态扩展
for(son : s.sons){
if(!set.contains(son))
queue.offer(son)
}
}
解决方案
解决方案二:
线程做同步,取出来元素后,要删除队列中的,其它线程才能写入新数据。
时间: 2024-09-20 18:35:14