hashtable(long,arraylist<Peer>);
hashtable中的键值为时间,value值为Arraylist。
由于Arraylist中的数据(peer个数)不定,会有add和remove操作,
多线程访问这个hashtable,从value值(arraylist中)取得数据peer,
如何保证同一线程每次获得数据(100个peer对象)不相同,
也就是从arraylist中得到的peer对象是不同,前提是arraylist中的数据很多。我现在比较迷惑,没想到其它的存储方式,谁能帮解决一下或者提供更好的其它方法!谢谢!
hashtable中的键值为时间,value值为Arraylist。
由于Arraylist中的数据(peer个数)不定,会有add和remove操作,
多线程访问这个hashtable,从value值(arraylist中)取得数据peer,
如何保证同一线程每次获得数据(100个peer对象)不相同,
也就是从arraylist中得到的peer对象是不同,前提是arraylist中的数据很多。我现在比较迷惑,没想到其它的存储方式,谁能帮解决一下或者提供更好的其它方法!谢谢!
楼主【tianlj202】截止到2008-06-23 11:37:46的历史汇总数据(不包括此帖):
发帖数:0 发帖分:0
结贴数:0 结贴分:0
未结数:0 未结分:0
结贴率:-------------------结分率:-------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
你要做什么??
如果是的话,确实会出现楼主所说的现象的概率应该很低。
每次取出的数据不能相同,例如第一次取出peer1,第二次就不能再有peer1了。
ThreadLocal tl=new ThreadLocal();
tl.set(new ArrayList());
tl里放个list保存已经取出去的所有peer,
每次取之前,都用tl.get()得到那个保存所有已经被取出的peer,
判断下不就可以了吗?不知道这是不是你所需要的
如果每个arraylist 都用tl.set(new ArrayList());
然后每个线程都有比较这个过程,我测试过,我的服务器运行就太慢了,所以我的原则是尽量没有比较
这个操作。
单击“可用插件”标签,然后选择“JBuilder 项目导入程序”或“Eclipse 项目导入程序”。
单击“安装”。
导入项目:
从“文件”>“导入项目”菜单中选择项目类型。