Won't using multiple curl processes consume more resources than threads?
Yes. However, I think how well this works depends on how many cores you have and how evenly you spread those processes across each core.
If the goal is to fetch as many URLs as possible, the best bet seems to be using async epoll to simultaneously fetch tens of thousands links. Processes/threads consumes too much memory to be viable.
Seems like it would be easier to use xargs or GNU Parallel.