Java 所有线程都在等待某种屏障条件

Java 所有线程都在等待某种屏障条件,java,multithreading,datasource,threadpool,connection-pooling,Java,Multithreading,Datasource,Threadpool,Connection Pooling,我有这样的课 class EmployeeTask implements Runnable { public void run(){ PayDAO payDAO = new payDAO(session); String newSalary= payDAO.getSalary(empid); String newTitle= payDAO.getTitle(empid); EmployeeDAO employee

我有这样的课

class EmployeeTask implements Runnable {   
    public void run(){ 
        PayDAO  payDAO = new payDAO(session);
        String newSalary= payDAO.getSalary(empid);
        String newTitle= payDAO.getTitle(empid);

        EmployeeDAO employeeDAO = new EmployeeDAO(session);
        List<Employee> employees = employeeDAO.getEmployees();
          employees.parallelStream().foreach(employee-> employeeDAO.add(newSalary, newTitle,employee));
    }
}
类EmployeeTask实现可运行{
public void run(){
PayDAO PayDAO=新PayDAO(会话);
字符串newSalary=payDAO.getSalary(empid);
字符串newTitle=payDAO.getTitle(empid);
EmployeeDAO EmployeeDAO=新员工dao(会话);
List employeeDAO.getEmployees();
employees.parallelStream().foreach(employee->employeeDAO.add(newSalary,newTitle,employee));
}
}
  • 当我为一个线程运行上述代码时,它在1秒内完成DB操作并返回
  • 当我使用parallelStream()运行它时,它将提交8个请求,所有8个线程将等待8秒钟,然后返回。这意味着服务器正在按顺序而不是并行地执行请求 我检查了java jetty日志

    Theread-1插入

    Theread-2插入

    Theread-8插入

    8秒后,即每个请求1秒


    Theread-1 Insert…在测试过程中,您是否可以进行线程转储以查看线程锁定的位置?所有线程都在单个连接对象上被阻塞。我通过打开、提交和关闭parallelstream中的连接和会话解决了这个问题。
    <environments default=“XX”>
        <environment id=“XX”>
            <transactionManager type=“JDBC”/>
            <dataSource type="POOLED">
                <property name="driver" value="com.vertica.jdbc.Driver"/>
                <property name="url" value="jdbc:vertica://host:port/schema”/>
                <property name="username" value=“userName”/>
                <property name="password" value=“password”/>
               <property name="poolMaximumActiveConnections" value=“50”/>
                <property name="poolMaximumIdleConnections" value=“10”/>
            </dataSource>
        </environment>
    </environments>