chem_zqm 2010-01-04 01:28
浏览 359
已采纳

如何用java单用户多线程查询数据库?

问题是这样的:数据库有14张表相似的表,表属性除了表名都一样(其实就是每个盟市区划都各有一个表),需要通过表查询统计数据并汇总,如果单纯用sql语句再用union all的话需要20多秒的时间,如果数据量再大点这个时间会更长;我现在想通过java多线程同时将14张表的数据查出再进行汇总,至于数据库的I/O方面应该不会有问题,因为可以使用那库的人很少。

我现在可以写出一个多线程的代码如下:
[code="java"]
public class Test {
public static void main(String[] args) throws Exception{
Thread t0 = new MyThread("aa",100);
t0.start();
Thread t1 = new MyThread("bb",50);
t1.start();
Thread t2 = new MyThread("cc",3);
t2.start();
Thread t3 = new MyThread("dd",1);
t3.start();

                 getTotal();
  }

}
[/code]
现在就是无发保证最下面的方法在前面的线程都结束时调用,求解答!

  • 写回答

2条回答 默认 最新

  • xxxxxxxxxxxxxxxxx 2010-01-04 11:45
    关注

    给MyThread加个Vector,
    构造的时候,作add("query_key");
    线程退出(查询完毕)的时候,作remove("query_key");

    在线程退出的时候,判断vector里的东西,就ok.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现