Forking and threading.
They both do stuff while another loop or event handler, does it's thing.
Load a DLL, and ask for a function or procedure to run, and it'll do it.
Handling all those takes time waiting, or to come up with semaphores and mutex and what not.
So the issue at times is that...