Whenever I need parallelism and nonblocking applications, I look at POE.
Most likely that someone else before me has tackled my problem and actually turned the solution into a great POE module.
You might still need a threading solution and it mixes well with POE, at least in my GUI apps.
Also, I have to say that BrowserUK always manages to turn cumbersome Perl threads into an art form.