THREADED VS ASYNCHRONOUS: THEY ARE JUST WORKFLOW MODELS FOR COMPUTERS
- Resource 1: https://eloquentjavascript.net/11_async.html
- Resource 2: https://codewala.net/2015/07/29/concurrency-vs-multi-threading-vs-asynchronous-programming-explained/
How to “work smarter, not harder” lies in controlling the work flow. This is a million piece puzzle that is the basis for the book Cheaper by the Dozen. It’s an important topic in software as well. Computer storage and processing has limited resources. Like a corporation, the bigger the system gets, the more overhead there is to manage the system.
I remember taking Macroeconomics and Microeconomics courses at FVCC with Gregg Davis. He used a coffee cart model to explain why two employees might be better than one employee. One employee could make coffee while the other worked the window. If you add a third employee, that person could help the flow of coffee production. But that doesn’t make 10 people working in the coffee cart better than two because of the limitations of the space in the coffee cart. With this and other examples and other classes, the understanding of process grew in my head. And, I have been able to apply that understanding to the processes inside a computer.
I remember learning about critical paths in the Systems and Operations class with Belva Cooley (Jones) at the UM Business School. The idea of critical paths once again caused explosions in my head. And, again, those lessons from Business, are modeled in the computer world. Asynchronous shortens the critical path because there is less waiting.
In Operating Systems with Alden Wright, I learned that the same ideas apply to computers. How to get the most work done with the available resources.
And last week, the Montana Programmers Meetup at Workkiva prompted me to investigate the idea of asynchronous programming.
“Each programming model (Synchronous and Asynchronous) can run in single threaded and multi-threaded environment.”
Just another workflow model!