I took help from this Question
< Wait for all the threads to finish their job and then measure the time elapsed>
But this refernce doesn't solve my problem .May i am wrong at some points.
for (ReadProcess_MongoDB readData : readProcessMongoObj)
executor.execute((Runnable) readData);
executor.shutdown();
executor.awaitTermination(1, TimeUnit.MINUTES);
}
catch (InterruptedException e) {
//Log exception here
} finally {
executor.shutdownNow();
printTime();
}
public void printTime()
{
for(int i=0;i<numberOfThreads;i++)
System.err.println("used Time "+timeArrObj[i]);
}
System prints data like this
Thread Number=3 MongoDB_readQuery used time 109
used Time 109
Thread Number=0 MongoDB_readQuery used time 109
used Time 109
used Time 0
used Time 0
used Time 0
Thread Number=2 MongoDB_readQuery used time 109
Thread Number=4 MongoDB_readQuery used time 109
Thread Number=1 MongoDB_readQuery used time 109
But i want display data
Thread Number=3 MongoDB_readQuery used time 109
Thread Number=0 MongoDB_readQuery used time 109
Thread Number=2 MongoDB_readQuery used time 109
Thread Number=4 MongoDB_readQuery used time 109
Thread Number=1 MongoDB_readQuery used time 109
used Time 109
used Time 0
used Time 0
used Time 0
used Time 109
I want execute printTime() after complete all thread.Please suggest where i made mistake