您的位置:首页 > 编程语言

我写的一段多线程代码

2015-03-27 00:00 155 查看
摘要: 我写的一段多线程代码

//代码段1

int threadNumber;
int everySize = 100;

int beginIndex = 0;
if(ruleList != null && ruleList.size() >0){
threadNumber = (ruleList.size()-1)/everySize + 1;
beginIndex = everySize * i;

//根据线程数,循环创建线程
for(int i = 0 ; i < threadNumber ; i++){
if(i == threadNumber-1){
everySize = ruleList.size() - everySize*i;
}

Multithreading multithreading = new Multithreading(ruleList, everySize,beginIndex);
Thread thread = new Thread(multithreading);
thread.start();
}

}

//代码段2 多线程类

/**
* 创建一个多线程的类
* @author jade
* @Date 2015/3/23
*/
class Multithreading implements Runnable{
List<OriginBasicRuleVO> list = new ArrayList<OriginBasicRuleVO>();
//int threadNum; //线程数:设置个默认值是5,在此处好像没用
int everySize; //循环的次数
int beginIndex; //每次循环的开始位置

/**
* 使用构造方法来传递值
* @param alist
* @param threadNum
* @param everySize
*/
public Multithreading(List<OriginBasicRuleVO> alist,int everySize,int beginIndex){
this.list.addAll(alist);
this.everySize = everySize;

this.beginIndex = beginIndex;
}

public void run() {
OriginInfoOperation origin = new OriginInfoOperation();
for(int i= beginIndex; i < everySize+beginIndex; i++){
origin.querySolrToOrigin(list.get(i));
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: