使用JDBC时,所有线程在套接字IO上被阻塞

时间:2015-05-08 13:51:52

标签: java mysql multithreading jdbc

我遇到了一个非常令人沮丧的问题。

基本上我有大量的sql update语句要使用JDBC在mysql数据库上执行。为此,在需要的时间内,我使用Java的Executor Service和一个固定的线程池,如下所示:

ExecutorService executor =  Executors.newFixedThreadPool(10);

每个线程调用另一个类的run方法,我在该类中执行sql update操作。

但是,它运行得非常慢,并且JProfiler已经发现所有线程都阻塞了套接字IO。我认为mysql可以同时处理多个更新语句。

有关如何解决此问题的任何想法?

注意我的机器上有10个可用的处理器。

以下是JProfiler的“线程历史记录”屏幕的屏幕截图。这里的浅蓝色表示线程在Net I / O中(线程正在等待将数据写入套接字)。

enter image description here

0 个答案:

没有答案