我写的一段多线程代码
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));
}
}
}
//代码段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));
}
}
}
相关文章推荐
- ASP.NET:一段比较经典的多线程学习代码
- ASP.NET:一段比较经典的多线程学习代码
- 多线程程序一段问题代码分析(生产者消费者)
- Winform基于多线程实现每隔1分钟执行一段代码
- 一段比较经典的多线程学习代码
- Winform基于多线程实现每隔1分钟执行一段代码
- c#每隔一段时间执行一段代码(多线程)
- 多线程程序一段问题代码分析
- ASP.NET:一段比较经典的多线程学习代码
- CSDN JAVA版主老紫竹的一段模拟买火车票的多线程代码(转)
- 一段比较经典的多线程学习代码
- 一段多线程锁机制的代码,看完你会提高不少。
- .NET:一段比较经典的多线程学习代码
- .NET:一段比较经典的多线程学习代码
- java一段简单的代码看懂多线程结果
- 一段模拟龟兔赛跑的多线程代码
- <转载>.NET:一段比较经典的多线程学习代码
- 实现一个无锁的Stack,并写一段测试代码(多线程访问),证明这个Stack是线程安全的。给出程序以及运行的截图。
- 一段比较经典的多线程学习代码
- 一段LINUX下常用的多线程程序代码