public void start() {

		// A new thread pool is created...
		ThreadPoolExecutor executor = testThreadPoolExecutorService
				.createNewThreadPool();
		executor.allowCoreThreadTimeOut(true);

		// Created executor is set to ThreadPoolMonitorService...
		threadPoolMonitorService.setExecutor(executor);

		// ThreadPoolMonitorService is started...
		Thread monitor = new Thread(threadPoolMonitorService);
		monitor.start();

		// New tasks are executed...
		for (int i = 1; i < 10; i++) {
			executor.execute(new TestTask("Task" + i));
		}

		try {
			Thread.sleep(40000);
		} catch (Exception e) {
			log.error(e.getMessage());
		}

		for (int i = 10; i < 19; i++) {
			executor.execute(new TestTask("Task" + i));
		}

		// executor is shutdown...
		executor.shutdown();
	}