public synchronized void startThreads() {
		QueuedPage qp;

		while (!q.isEmpty() && threadCount < maxThreads && !canceled) {
			qp = q.poll();
			new CrawlerThread(qp, this);
			currentCrawls.add(qp);
			threadCount++;
		}

		// bereite Output vor, falls alle Threads fertig sind und keine weiteren
		// Seite zum Crawlen anstehen
		if ((q.isEmpty() || canceled) && threadCount == 0) {
			LinkMatrix lm = getLinkMatrix();
			try {
				lm.write(outFile);
			} catch (Exception e) {
				System.out.println(outFile
						+ " konnte nicht geschrieben werden.");
			}
			finished = true;
		}
	}