@Override public void run() { while (isAlive) { try { KTask toExecuteTask = null; if (toExecuteTask == null) { toExecuteTask = tasks.poll(); } if (toExecuteTask != null) { try { toExecuteTask.run(); } catch (Exception e) { e.printStackTrace(); } } else { try { Thread.sleep(20 * _nbWorker); } catch (InterruptedException e) { e.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } } }