Run serial logic in parallel
If you have slow logic dependent on say a slow external input/output process then one optimization technique is to run things in parallel. This can be done using asynchronous I/O or running logic on multiple threads at once. These are both solutions to the same underlying problem.