多线程编程测试条件下:如果c3p0连接池设置过小。当连接池满时。由于没有对各个线程设置优先级。导致后面的线程一直等待连接。造成死锁。
求简洁有效的解决方法。推荐可以解决上面问题的连接池也可以。
jdbc.initialPoolSize=5
jdbc.minPoolSize=3
jdbc.maxPoolSize=10
jdbc.maxIdleTime=600
jdbc.acquireIncrement=2
jdbc.idleConnectionTestPeriod=120
jdbc.maxConnectionAge=400
class T extends Thread {
private int num;
public T(int num) {
this.num = num;
}
@Override
public void run() {
System.out.println(“==in ” + num);
Map> map = getTableColumns(“sns_user_main_info”);
System.out.println(“–” + map.size());
System.out.println(“==out ” + num);
}
}
class H extends Thread {
@Override
public void run() {
while(true) {
try {
T t1 = new T(1);
T t2 = new T(2);
T t3 = new T(3);
T t4 = new T(4);
T t5 = new T(5);
T t6 = new T(6);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
t6.start();
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}