java多线程写的_java里面多线程,自己写的小例子

某天,在群里看见有个人 问 sqlService里面有2000万条数据 需要转储到orcale中。什么方式比较好,后来一琢磨非多线程莫属啊~;

我这里没有那么多数据,所以我就模拟了下 一次存入10万条数据,看有多快~;上代码。

在数据库创建 表 t_test  2个字段 id  name

定义一个类 继承Runnable 实现run方法

public class Test implements Runnable{

//实现run方法

public void run() {

//定义一个集合~这个集合是用来装入存入失败的数据

List list = new ArrayList();

//这里就是要设置存入的数据 200个

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

String sql="INSERT into t_test VALUES(null,"+i+")";

try {

//jdbc方式存入,这个是自己写的工具类

JDBCUtils.executeSQL(sql);

} catch (Exception e) {

//当出现错误的时候 会把没有存入的装入集合里面

list.add(i);

}

}

//判断集合是否为空,不为空证明有数据没有存入,利用递归的方式在进行存入

if(!list.isEmpty()){

System.out.println("进来了");

dg(list);

}

}

//需要进行递归的操作

public void dg(List list){

ArrayList list2 = new ArrayList();

for (Integer i : list) {

String sql="INSERT into t_test VALUES(null,"+i+")";

try {

JDBCUtils.executeSQL(sql);

} catch (Exception e) {

list2.add(i);

}

}

if(!list2.isEmpty()){

System.out.println("进行递归");

dg(list2);

}else{

System.out.println("结束");

}

}

public static void main(String[] args) {

Thread thread = null;

//开启500跳线程

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

//需要开启线程的类

thread = new Thread(new Test());

//开启现成

thread.start();

}

}

}

这只是一个思路~转储数据库的话其实和这个差不多;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值