docs: public synchronized Thread getFreeThreadAndRun(Runnable runnable) {
  	    
  		for (int i=0; i<pool.length; i++) {
  			if (pool[i] == null || !pool[i].isAlive()) {
  				pool[i] = new Thread(runnable);
  				if (threadsBaseName != null) {
  					pool[i].setName(threadsBaseName + i);
  				}
  				pool[i].setDaemon(true);
  				pool[i].start();
  				return pool[i];
  			}
  		}
  		return null;
  	}