我是使用等待和通知的新手。我在测试我的代码时遇到了麻烦。下面是我的实现:(注意:我没有包括所有的实现)
public class PoolImp {
private Vector<Connection> connections; // For now maximum of 1 connection
public synchronized Connection getconnection() {
if(connections.size == 1() ) {
this.wait();
}
return newConnection(); // also add to connections
}
public synchronized void removeconnection() {
connections.size = 0;
this.notify();
}
}
下面是我的测试方法: conn_1 获得第一个连接。conn_2 进入等待状态,因为只允许最多 1 个连接。
我想以这样一种方式进行测试,即当我调用 removeconnection 时,conn_2 会收到通知并获得释放的连接。
测试:@Test
public void testGetConnections() throws SQLException
{
PoolImpl cp = new PoolImpl();
Connection conn_1 = null;
Connection conn_2 = null;
conn_1 = cp.getConnection();
conn_2 = cp.getConnection();
cp.removeConnection(conn_1);}
}