public void run() {

		workList.add(new CallableRunner(this.threadName + " - 0"));
		workList.add(new CallableRunner(this.threadName + " - 1"));
		workList.add(new CallableRunner(this.threadName + " - 2"));

		try {
			
			// 작업 실행기에 타임아웃 제한 시간을 설정한 후 실행함
			//executor.invokeAll(workList, this.timeOut, TimeUnit.SECONDS);
			
			// 작업 실행함
			executor.invokeAll(workList);
			
		} catch (InterruptedException e) {
			
			e.printStackTrace();
			shutdownAndAwaitTermination(executor.getExecutor());
			
		} catch (NullPointerException e) {
			
			e.printStackTrace();
			shutdownAndAwaitTermination(executor.getExecutor());
			
		} catch (RejectedExecutionException e) {
			
			e.printStackTrace();
			shutdownAndAwaitTermination(executor.getExecutor());
			
		}

		// 작업 실행이 완료됨
		System.out.println(this.threadName + " did complete.");
		
		executor.shutdown();
	}