java多线程处理大批量数据(java 多线程 对集合数据的处理)
本文目录
- java 多线程 对集合数据的处理
- 请教Java处理大批量的数据
- java多线程访问数据库怎么优化啊,并发很大
- 在java中 我select表里面的数据,select的数据量大概百万条,然后我for循环,get(i),怎么提高效率
- java多线程更新数据库批量的数据信息吗怎么实现
- 如何利用java的多线程分批处理mysql的结果集
java 多线程 对集合数据的处理
这种查询你用多线程实现是没有意义的。反而会增加查询时间。
线程的数量与你的CPU核心数是相关的,另外是否采用多线程要看是不是会有程序等待IO而阻塞的情况发生,如果不是那样,那么意义不大。
你数据库查询1W条记录,都是需要从硬盘加载到内存,然后检索,返回,你分了10次,时间反而耗费的可能更多,意义不大,反而不如一次性加载出来。
请教Java处理大批量的数据
首先看是什么文件?txt?还是xml?
如果是txt的话我们直接通过IO将其中的内容看做一个字符串,接着去找个正则表达式匹配(如果楼主正则表达式不错的话)一下那么很快就可以得出你想要的结果了。
如果xml的话则遍历用户节点然后找到相应的 userId的节点下的商品id的节点。
其实还有个方法就是通过spilte方法将它分成数组。。。然后遍历数组来得到想要的结果。。。正则表达式如果写出来应该是最快的,比较符合楼主的要求。。。
java多线程访问数据库怎么优化啊,并发很大
个人觉得高写入并发的话先用缓存缓冲一下,可以合并的写入合并成批量写入可以管一些用但终归写入量很大的话还是要在数据库端优化了,把并发写均衡到多台服务器上,应该没有别的办法了。如果瓶颈不再数据库那就是应用服务器处理能力不足,升级应用服务器。
在java中 我select表里面的数据,select的数据量大概百万条,然后我for循环,get(i),怎么提高效率
这只能在数据库上面做手脚,例如使用My**L作为数据库,查询时,使用分页方式实现,减少单位时间的数据总量。
java多线程更新数据库批量的数据信息吗怎么实现
//将数据库中的数据条数分段
public void division(){
//获取要导入的总的数据条数
String sql3="SELECT count(*) FROM ";
try {
pss=c***.prepareStatement(sql3);
rss=pss****cuteQuery();
while(*****()){
*****("总记录条数:"+*****(1));
sum=*****(1);
}
//每30000条记录作为一个分割点
if(sum》=30000){
n=sum/30000;
residue=sum%30000;
}else{
residue=sum;
}
*****(n+" "+residue);
} catch (**LException e) {
// TODO Auto-generated catch block
*****();
}
}
线程类
public MyThread(int start,int end) {
*****=end;
*****=start;
*****("处理掉余数");
try {
*****("--------"+*****().getName()+"------------");
*****(**LSERVERDRIVER);
*****("加载sqlserver驱动...");
c*** = *****(CONTENTS,UNS,UPS);
stas = c***.createStatement();
*****("连接**LServer数据库成功!!");
*****("加载mysql驱动.....");
*****(MY**LDRIVER);
con = *****(CONTENT,UN,UP);
sta = *****();
// 关闭事务自动提交
*****(false);
*****("连接mysql数据库成功!!");
} catch (Exception e) {
*****();
}
// TODO Auto-generated c***tructor stub
}
public ArrayList《Member》 getAll(){
Member member;
String sql1="select * from (select row_number() over (order by pmcode) as rowNum,*" +
" from ) as t where rowNum between "+start+" and "+end;
try {
*****("正在获取数据...");
allmembers=new ArrayList();
rss=stas****cuteQuery(sql1);
while(*****()){
member=new Member();
*****(*****("address1"));
*****(*****("bnpoints"));
*****(*****("dbno"));
*****(*****("expiry"));
*****(*****("hispoints"));
*****(*****("kypoints"));
*****(*****("levels"));
*****(*****("names"));
*****(*****("pmcode"));
*****(*****("remark"));
*****(*****("***"));
*****(*****("telephone"));
*****(*****("wxno"));
*****(*****("pmdate"));
*****(member);
// *****(*****());
}
*****("成功获取sqlserver数据库数据!");
return allmembers;
} catch (**LException e) {
// TODO Auto-generated catch block
*****("获取sqlserver数据库数据发送异常!");
*****();
}
try {
*****();
*****();
} catch (**LException e) {
// TODO Auto-generated catch block
*****();
}
return null;
}
public void inputAll(ArrayList《Member》 allmembers){
*****("开始向mysql中写入");
String sql2="insert into ***** values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
try {
ps=*****(sql2);
*****("-------------------------等待写入数据条数: "+*****());
for(int i=0;i《*****();i++){
*****(1, *****(i).getPmcode());
*****(2, *****(i).getNames());
//*****(*****(i).getNames());
*****(3, *****(i).getSex());
*****(4, *****(i).getTelephone());
*****(5, *****(i).getAddress1());
*****(6, *****(i).getPmdate());
*****(7, *****(i).getExpiry());
*****(8, *****(i).getLevels());
*****(9, *****(i).getDbno());
*****(10, *****(i).getHispoints());
*****(11, *****(i).getBnpoints());
*****(12, *****(i).getKypoints());
*****(13, *****(i).getWxno());
*****(14, *****(i).getRemark());
//插入命令列表
//*****();
ps****cuteUpdate();
}
//ps****cuteBatch();
*****();
*****();
*****();
*****=false;
*****(*****().getName()+"---》OK");
} catch (**LException e) {
// TODO Auto-generated catch block
*****("向mysql中更新数据时发生异常!");
*****();
}
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true&&flag){
*****(getAll());
}
}
如何利用java的多线程分批处理mysql的结果集
那样你需要有一个策略 , 用来分你的结果集。 类似hadoop的map-reduce过程了。
你是想大家分开查询 还是一次查询分开处理? 处理数据速度要慢于查询速度么?
更多文章:
java多线程处理大批量数据(java 多线程 对集合数据的处理)
2026年4月24日 01:20
交友源码素材(IM即时通讯聊天社交APP源码,交友APP源码)
2026年4月24日 00:20
createfile failed with 32 apex(apex启动错误代码32)
2026年4月23日 23:20
结构体数组间值传递(结构体数组作为形参,怎么传递,怎么使用)
2026年4月23日 23:00
0x000007b(电脑无法开机出现“STOP:0×000007B”怎么办)
2026年4月23日 22:40
vs2017和vs2019的差别(c#现在公司统一用vs几)
2026年4月23日 22:20




