Java 在 mysql 中大量插入数据为什么一个进程中会存在多个线程?

为了做测试我在本地 mysql 中插入了大量的数据大概几百万

插入的要持续一段时间,但是我发现 java 的写入 mysql 的进程中有多个线程,但是我并没新开线程,只是简单的 for 循环

是 mysql 驱动中插入的过程会多开线程吗?

Connection connection = DB.getConnection();
                    PreparedStatement statement = null;
                    try {
                        connection = DB.getConnection();
                        for (int i = 0; i < 10000000; i++) {
                            String sql = "insert into post( title, uid, col1, col2, col3, col4) value(?,?,?,?,?,?)";
                            statement = connection.prepareStatement(sql);
                            String str = getRandomString(64);
                            statement.setString(1, getRandomString(16));
                            statement.setInt(2, random.nextInt(15792992));
                            statement.setString(3, str);
                            statement.setString(4, str);
                            statement.setString(5, str);
                            statement.setString(6, str);
                            statement.execute();
                        }

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
阅读 2.6k
3 个回答

猜测你的 DB 对象是连接池, 而连接池都会是多线程的.

java程序即使只有一个hello world都是多线程的
图片描述

java本身就有许多辅助的线程啊,比如gc线程

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题