【转载】JAVA多线程读取、操作List集合
本文转载自:http://blog.csdn.net/wang1989cs/article/details/47663565
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.ArrayUtils; public class Test_4 {
/**
* 多线程处理list
*
* @param data 数据list
* @param threadNum 线程数
*/
public synchronized void handleList(List<String> data, int threadNum) {
int length = data.size();
int tl = length % threadNum == 0 ? length / threadNum : (length
/ threadNum + 1); for (int i = 0; i < threadNum; i++) {
int end = (i + 1) * tl;
HandleThread thread = new HandleThread("线程[" + (i + 1) + "] ", data, i * tl, end > length ? length : end);
thread.start();
}
} class HandleThread extends Thread {
private String threadName;
private List<String> data;
private int start;
private int end; public HandleThread(String threadName, List<String> data, int start, int end) {
this.threadName = threadName;
this.data = data;
this.start = start;
this.end = end;
} public void run() {
// TODO 这里处理数据
List<String> subList = data.subList(start, end)/*.add("^&*")*/;
System.out.println(threadName+"处理了"+subList.size()+"条!");
} } public static void main(String[] args) {
Test_4 test = new Test_4();
// 准备数据
List<String> data = new ArrayList<String>();
for (int i = 0; i < 6666; i++) {
data.add("item" + i);
}
test.handleList(data, 5);
System.out.println(ArrayUtils.toString(data));
}
}
相关文章:java.util.List接口的方法subList()的使用注意事项
List集合存储是否有上限?
答:(硬件内存因素暂不考虑)那就应该没有上限,因为它的add()方法在JAVA DOC的解释里面,没有容量的约束。但是,有一点,它的size()方法说返回列表中的元素数。如果列表包含多于 Integer.MAX_VALUE 个元素,则返回 Integer.MAX_VALUE。那么就是说,如果容量超过 Integer.MAX_VALUE,就无法用get(int index)得到,因为get的参数范围上限就是Integer.MAX_VALUE。此时只能用iterator()去访问了,不过这时的应用应该没什么意义了(再去每个元素比较,找到想要的吗,显然很累),所以,从这种意义上讲Integer.MAX_VALUE可以说是list的上限
【转载】JAVA多线程读取、操作List集合的更多相关文章
- [转载] java多线程学习-java.util.concurrent详解(一) Latch/Barrier
转载自http://janeky.iteye.com/blog/769965 Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent, 提供了大量高级工具,可 ...
- [转载] java多线程总结(三)
转载自: http://www.cnblogs.com/lwbqqyumidi/p/3821389.html 作者:Windstep 本文主要接着前面多线程的两篇文章总结Java多线程中的线程安全问题 ...
- Java多线程读取大文件
前言 今天是五一假期第一天,按理应该是快乐玩耍的日子,但是作为一个北漂到京师的开发人员,实在难想出去那玩耍.好玩的地方比较远,近处又感觉没意思.于是乎,闲着写篇文章,总结下昨天写的程序吧. 昨天下午朋 ...
- [转载] java多线程总结(二)
转载自:http://www.cnblogs.com/lwbqqyumidi/p/3817517.html 作者:Windstep 四.Java多线程的阻塞状态与线程控制 上文已经提到Java阻塞的几 ...
- [转载] java多线程总结(一)
转载自:http://www.cnblogs.com/lwbqqyumidi/p/3804883.html 作者:Windstep 多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. ...
- java多线程的操作
上篇博客简单了介绍了Java的多线程的概念,与进程的区别,两种创建方式,状态及获取线程名称等内容.这篇文章接着介绍Java的多线程.主要从一下几方面介绍. 1 线程类的常用方法 1.1 start() ...
- java多线程读取、操作List集合
import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.ArrayUtils; pub ...
- [转载] java多线程学习-java.util.concurrent详解(四) BlockingQueue
转载自http://janeky.iteye.com/blog/770671 ------------------------------------------------------------- ...
- java 多线程 同步 观察者 并发集合的一个例子
//第一版 package com.hra.riskprice; import com.hra.riskprice.SysEnum.Factor_Type; import org.springfram ...
随机推荐
- bsd socket 网络通讯必备工具类
传输数据的时候都要带上包头,包头有简单的又复杂的,简单的只要能指明数据的长度就够了. 这里我写了一个工具类,可以方便地将整型的数据长度转换为长度为 4 的字节数组. 另一方面,可以方便的将长度为 4 ...
- jetty;linux 目录结构
[说明]今天看了看jetty这个web容器,上午看基础理论框架知识(后面半点没用到),下午下载了jetty,并且在上面部署了一个war应用,晚上在做eclipses整合jetty的时候出现了问题,下载 ...
- 数组中binarySearch 中小小的误区! 用的时候大家要注意点
- Dev GridControl 小结3
Dev GridControl 小结 时间 2014-03-26 19:24:01 CSDN博客 原文 http://blog.csdn.net/jiankunking/article/detai ...
- Android怎样在http头信息里设置參数
在使用http请求server时经常要传递一些參数给server.如IMEI号.平台号.渠道号.client的版本等一些通用信息,像这些參数我们没有必要每次都拼在url后,我们能够统一加入到http头 ...
- AndroidStudio项目import进的包都是红色的
今天在开发项目时,一不留神,项目中import部分的内容全部变成了灰色,最后的类名却都变成了红色,如图: 一时之间,懵逼了~~~.Alt+Enter快捷键导包竟然是这个样子的@_@: 这简直就没见过 ...
- 【算法题 14 LeetCode 147 链表的插入排序】
算法题 14 LeetCode 147 链表的插入排序: 解题代码: # Definition for singly-linked list. # class ListNode(object): # ...
- LDA主题模型三连击-入门/理论/代码
目录 概况 为什么需要 LDA是什么 LDA的应用 gensim应用 数学原理 预备知识 抽取模型 样本生成 代码编写 本文将从三个方面介绍LDA主题模型--整体概况.数学推导.动手实现. 关于LDA ...
- pyhton3 os模块
1 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 2 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd 3 o ...
- event driven model
http://www.jdon.com/eda.html http://blog.csdn.net/gykimo/article/details/9182287 事件代表过去发生的事件,事件既是技术架 ...