猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
关于java并发的面试题
10个人同时从10万条数据中取一条数据,要求取到的数据不相同
蝴蝶不菲
浏览 501
回答 7
7回答
胡子哥哥
把10万个数加上10把区域锁,每个人就限制在该区域拿,就不会重复了,java中有实现的类
0
0
0
开满天机
1.有两种方法:10个人按顺序取。当这个人取得时候,其他人不能取(取完设置一个标志位)。2.同时取,取完再比较。转成hashSet。size不等于10就说明有重复。然后再取一遍。直到不重复。推荐第一种、
0
0
0
慕姐4208626
可以试试使用java的并发集合,比如concurrentHashMap等。
0
0
0
慕妹3146593
如果描述的就是全部的要求的话,第X个人取第X条数据不就好了?
0
0
0
波斯汪
BlockingQueue.take()
0
0
0
慕容708150
题主的意思应该是,10个人,随机读取10W条数据,但是必须保证每个人读取的数据是不一样的。比如说A去读取第99条数据这个时候B也读到了第99条数据,这个时候B就必须重新选择一条数据去读取。我觉得可以在读数据之前先确定读取的是哪条数据,并且把相应的数据行放入一个concurrentHashMap中,下一次读取的时候先判断读取的数据行在Map中是否存在就好了。
0
0
0
函数式编程
使用BlockingQueue
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续