nowadays I mostly see lock-free queues and message passing across threads, it's trivial to do with a few nice libraries