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,但是看到打印到某一句就停止执行了,也不报异常,怀疑是出现了死锁,但是不知道是什么操作可能导致这个问题?该怎么解决呢?

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