in reply to Do I need threads?

You can use threads. You can use forks. You can use select loops. You can use a module (or a set of related modules) to do async I/O.

Sorry, there's no clear answer, but this is more a "not sure what you want" sort of answer.