I want to use concurrency in Java to make requests to an online API, download and parse the response documents, and load the resulting data into a database.
Is it st
One important thing to consider: does the order of the processing matter? i.e., is it important that the parsed result from the first download request gets loaded into the DB before the results from the second request?
If so, you really need queues (or similar), one per task. In effect, three single-threaded thread "pools" (or use an ExecutorService).
If not, @Brady makes good points. Unlike him, I'd probably make all three classes Runnable, but that doesn't mean you have to use three queues, you could still try a single pool and profile to see how it is working.