Multithreading in Java using ThreadPoolExecutor

ThreadWorker is your custom class.

try {
ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(MAX_THREAD_SIZE);
for (int i = 1; i Random randomGenerator = new Random();
executor.submit(new ThreadWorker("worker" + i, randomGenerator.nextInt(10)));
LOG.info(i);
}
} catch (Exception e) {
LOG.error("Hmm something is not right.", e);
}

Getting the caller method details using Java

public static String getCallerClassName() {
StackTraceElement[] stElements = Thread.currentThread().getStackTrace();
for (int i=1; i<stelements.length; i++)="" {="" stacktraceelement="" ste="stElements[i];" if="" (!ste.getclassname().equals(your_currentclass.class.getname())="" &&="" ste.getclassname().indexof("java.lang.thread")!="0)" return="" ste.getclassname()+"."+="" ste.getmethodname()+"()";="" }="" null;="" <="" code=""></stelements.length;>