像 h2、mysql、postgresql 的 jdbc 驱动的代码中有不少加了 synchronized 的代码,jdk 的网络 bio 的代码也有,虚拟线程遇到 synchronized 不但不会发生虚拟线程切换,还会阻塞运行它的系统线程,并且 java 的调度器中运行的系统线程数不变,一旦被阻塞就不能跑其他虚拟线程,这就解释了为啥效果不好。
像 h2、mysql、postgresql 的 jdbc 驱动的代码中有不少加了 synchronized 的代码,jdk 的网络 bio 的代码也有,虚拟线程遇到 synchronized 不但不会发生虚拟线程切换,还会阻塞运行它的系统线程,并且 java 的调度器中运行的系统线程数不变,一旦被阻塞就不能跑其他虚拟线程,这就解释了为啥效果不好。
No replies yet.