kh945926945 2017-05-24 08:46 采纳率: 0%
浏览 1648

hibernate多线程插入数据无法进行

`

public void addStockHistoryData() {

    StockCrawler sc = new StockCrawler();

    ArrayList<String> codes = getAllStockCodes();

    ExecutorService pool = Executors.newFixedThreadPool(100);

    CompletionService<ArrayList<StockHistoryData>> cs = new ExecutorCompletionService<ArrayList<StockHistoryData>>(
            pool);

    for (int i = codes.size() - 1; i > 800; i--) {

        String code = codes.get(i);

        cs.submit(new Callable<ArrayList<StockHistoryData>>() {

            @Override

            public ArrayList<StockHistoryData> call() throws Exception {

                System.out.println("getting " + code);

                ArrayList<StockHistoryData> sd = sc.getHistoryData(code, "300");

                Session s = sessionFactory.openSession();

                s.beginTransaction();

                for (StockHistoryData d : sd) {

                    s.saveOrUpdate(d);

                }

                s.getTransaction().commit();

                s.close();

                return sd;

            }

        });
    }

`
这是多线程存数据的代码段,hibernate的show_sql设置为true,但是看到打印到某一句就停止执行了,也不报异常,怀疑是出现了死锁,但是不知道是什么操作可能导致这个问题?该怎么解决呢?

  • 写回答

1条回答 默认 最新

  • ZzzzzBW 2017-05-24 08:51
    关注

    打印到哪一句停止执行了?
    这个开启了事务,在事务执行的步骤中就算多线程也要等事务完成第二个线程才能进入事务啊

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题