我遇到了一个非常令人沮丧的问题。
基本上我有大量的sql update语句要使用JDBC在mysql数据库上执行。为此,在需要的时间内,我使用Java的Executor Service和一个固定的线程池,如下所示:
ExecutorService executor = Executors.newFixedThreadPool(10);
每个线程调用另一个类的run方法,我在该类中执行sql update操作。
但是,它运行得非常慢,并且JProfiler已经发现所有线程都阻塞了套接字IO。我认为mysql可以同时处理多个更新语句。
有关如何解决此问题的任何想法?
注意我的机器上有10个可用的处理器。
以下是JProfiler的“线程历史记录”屏幕的屏幕截图。这里的浅蓝色表示线程在Net I / O中(线程正在等待将数据写入套接字)。