The only “really good” solutions — practically no overhead — will be based on SIGALRM, either directly or through a good layer of abstraction; but, as already noted, Windows does not support this. Threads are not needed, and not because it is difficult to get results (it would be trivial, with a queue!), But because forcing the running thread in a good cross-platform mode is not feasible.
multiprocessing - . , (, -, runaway , , ). , Queue ( ) ( , , ).
, , , ( LAN), , IPC .., , ( ), .