Sam*_*Sam -1 java collections multithreading loops
我Vector在我的环境中有一个,我multithreaded需要将其前5个元素传递给athreadpool
.这周围有什么最好的做法吗?(我的意思是使用java util类)
我可以在一个synchronized块内完成它并循环遍历向量,直到找到前5个元素.我想知道这是正确的方法.
请指教.
更新部分------
请找到我需要解决的实际问题.
A类将有一个向量(根据优先级排序.这将以高频率更新.我需要获得前5个元素)
B类将myOwnThreadPool扩展java.util.ThreadPoolExecutor并覆盖它的afterExecute方法.(游泳池大小为5)
A类将从向量中获取前5个元素并将其发送到B类池进行处理.
一旦afterExecute通知方法返回一个线程,我将从vector(在A类中/具有最高优先级)中挑选第一个最多的元素并将其发送到池进行处理.
我想现在我的问题为大家提供了一个更好的主意.
谢谢大家的答案/指导,非常欢迎进一步的建议.
Vector提供了一种subList方法,您可以按如下方式使用:
List five = myVector.subList(0, 5);
Run Code Online (Sandbox Code Playgroud)
这不会复制元素,只会在向量中构建视图.您可以按如下方式添加复制:
List five = new List();
Collections.copy(five, myVector.subList(0, 5));
Run Code Online (Sandbox Code Playgroud)