2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > java list 替换 多线程_Java多线程处理List数据

java list 替换 多线程_Java多线程处理List数据

时间:2020-02-19 15:48:06

相关推荐

java list 替换 多线程_Java多线程处理List数据

import java.util.ArrayList;

import java.util.List;

import mons.lang.ArrayUtils;

public class Test_4 {

/**

* 多线程处理list

*

* @param data 数据list

* @param threadNum 线程数

*/

public synchronized void handleList(List 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 data;

private int start;

private int end;

public HandleThread(String threadName, List data, int start, int end) {

this.threadName = threadName;

this.data = data;

this.start = start;

this.end = end;

}

public void run() {

//这里处理数据

List subList = data.subList(start, end);

for(int a=0; a

System.out.println(threadName+"处理了 "+subList.get(a)+" !");

//System.out.println(threadName+"处理了"+subList.size()+"条!");

}

}

}

public static void main(String[] args) {

Test_4 test = new Test_4();

// 准备数据

List data = new ArrayList();

for (int i = 0; i < 1517; i++) {

data.add("item" + i);

}

test.handleList(data, 6);

System.out.println(ArrayUtils.toString(data));

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。