On a previous question of mine I posted:
I have to read several very large txt files and have to either use multiple threads or a single thread to do so depending on user input. Say I have a main method that gets user input, and the user requests a single thread and wants to process 20 txt files for that thread. How would I accomplish this? Note that the below isn't my code or its setup but just what the "idea" is.
Example:
int numFiles = 20;
int threads = 1;
String[] list = new String[20];
for(int i = 1; i < 21; i++){
list[i] = "hello" + i + ".txt";//so the list is a hello1.txt, hello2.txt, ..., hello20.txt
}
public void run(){
//processes txt file
}
So in summary, how would I accomplish this with a single thread? With 20 threads?
And a user suggested using threadPools:
When the user specifies how many threads to use, you'd configure the pool appropriately, submit the set of file-read jobs, and let the pool sort out the executions. In the Java world, you'd use the Executors.newFixedThreadPool factory method, and submit each job as a Callable. Here's an article from IBM on Java thread pooling.
So now I have I have a method called sortAndMap(String x) which takes in a txt file name and does the processing, and for the example above, would have
Executors.newFixedThreadPool(numThreads);
How do I use this with threadPools so that my example above is doable?