关于链接池的问题?
connectionQueue为定义的链接池。
初始化时:
for(int i = 0; i < 20; ++i){
sqlConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
connectionQueue.Enqueue(sqlConnection);
}
放入了20个数据库链接。
取链接时:
public SqlConnection getSqlConnection()
{
SqlConnection con = null;
lock(connectionQueue)
{
if(connectionQueue.Count > 0)
{
con = (SqlConnection)connectionQueue.Dequeue();
}
else
{
//此处想让线程wait
}
}
return con;
}
返回链接时:
public void returnConnection(SqlConnection sqlConnection)
{
lock(connectionQueue.SyncRoot)
{
connectionQueue.Enqueue(sqlConnection);
//此处想唤醒前面等待的线程
}
}
不知道上面两行注释的地方该怎么写,有没有像JAVA里面wait和notifyAll的方法。