这一段没有看懂
connections = new DruidConnectionHolder[maxActive]; evictConnections = new DruidConnectionHolder[maxActive]; keepAliveConnections = new DruidConnectionHolder[maxActive];初始化三类不同的链接管理器
for (int i = 0; i < initialSize; ++i) { submitCreateTask(true); }异步初始化链接任务
private void submitCreateTask(boolean initTask) { createTaskCount++;//应该是记录了执行的次数 CreateConnectionTask task = new CreateConnectionTask(initTask); //创建了一个链接任务 if (createTasks == null) { createTasks = new long[8]; } boolean putted = false; //把当前任务的taskId加入到createTasks的第一个为零的元素中,记录,没有使用集合框架 for (int i = 0; i < createTasks.length; ++i) { if (createTasks[i] == 0) { createTasks[i] = task.taskId; putted = true; break; } } //如果容量不足的时候,扩充至原来的1.5倍 if (!putted) { long[] array = new long[createTasks.length * 3 / 2]; System.arraycopy(createTasks, 0, array, 0, createTasks.length); array[createTasks.length] = task.taskId; createTasks = array; } //提交任务,还不知道createScheduler的实现类是哪个 this.createSchedulerFuture = createScheduler.submit(task); } createAndLogThread();//日志线程 createAndStartCreatorThread();//创建链接的线程 createAndStartDestroyThread();//销毁链接的线程初始化完成