my java program uses java.util.concurrent.executor run multiple threads, each 1 starts runnable class, in class reads comma delimited text file on c: drive , loops through lines split , parse text floats, after data stored : static vector static concurrentskiplistmap my pc win 7 64bit, intel core i7, has 6 * 2 cores , 24gb of ram, have noticed program run 2 minutes , finish 1700 files, cpu usage around 10% 15%, no matter how many threads assign using : executor executor=executors.newfixedthreadpool(50); executors.newfixedthreadpool(500) won't have better cpu usage or shorter time finish tasks. there no network traffic, on local c: drive, there enough ram more threads use, have "outofmemoryerror" when increase threads 1000. how come more threads doesn't translate more cpu usage , less time of processing, why ? edit : hard drive ssd 200 gb. edit : found problem was, each thread writes it's results log file shared threads, more times run app, larger...