Cook Concurrent, Parallel, Async and Non-Blocking Together (3) - The Multitasking Myth
Last updated
Was this helpful?
Last updated
Was this helpful?
"I don't get it. Jammy resolved 50 tickets, submitted two code fixes for long-term operational improvements during his last on-call shift," Tommy complained. "I can barely keep the ticket queue in check during my shift. And Jammy didn't work excessive overtime or use anything magical. I know him well. What makes Jammy so much more productive than me?"
"Well, isn't it called multi-tasking?" I laughed.
"Yeah right," Tommy said in disbelief. "Multi-tasking has a bad reputation these days. It's like trying to do many tasks in parallel, constantly switching your attention from one to another, but never completing anything."
"That's the 'bad way' of doing multi-tasking," I explained. "In parallel computing, it's called 'Thrashing' - when too many threads compete for a limited number of resources, such as CPU cores or memory. We can observe similar phenomena in human activities too. But multi-tasking itself isn't inherently negative. It's like pursuing high-performance concurrency in programming so that multiple tasks can make progress simultaneously without blocking each other. We've discussed how the asynchronous model with non-blocking I/O tasks can achieve better concurrency. I think we can apply similar strategies to improve productivity in human activities like on-call shifts."
"Ah, so how do we apply the asynchronous model in human activities to get better at multi-tasking?" Tommy asked. "To be good at multi-tasking is a skill we need to deliberately practice and improve gradually," I said. "I've observed that people who are good at completing many tasks seemingly at the same time share some common practices:
Embrace the async approach: Acknowledge many tasks in life happen asynchronously. Focus on one task at a time and take advantage of non-blocking tasks to work on other things while waiting.
Prioritize tasks: Identify tasks that can be completed independently and those that depend on external factors, and organize your work accordingly.
Improve focus: Maintain a high level of focus on each task by avoiding constant switching between tasks, which can lead to decreased performance and increased errors.
Reduce stress: Manage tasks effectively to reduce the cognitive load associated with multitasking and minimize stress levels.
Be mindful of thrashing: Avoid situations where too many tasks are attempted simultaneously, leading to decreased efficiency and increased stress.
We all have to multi-task; it's part of life. But we need to be good at it, focusing on one task at a time, and embracing the asynchronous nature of our reality!"