Are you a Sheep or a Goat?
Sheep are grazers. Goats are browsers. Sheep do a lovely job of trimming down grass, but, if allowed, they will keep trimming right down to the roots. These are the folks who are on task and focused on that task. Goats aren’t interested in a perfect trim of your grass. They eat a bit of this and a bit of that, here and there. If you want those pesky vines cleared off, they will do it a bit now and a bit later. I work like a goat, a half hour on this project and a half hour on that project and a half hour on some mindless task that allows me to chew on it a while.
Sheep and goats are much more interesting than the words Computer Science has given us, but we are stuck with Synchronous and Asynchronous. If I ever get a sheep it will be named Synchronous. If I ever get a goat, it will be named Asynchronous.
Threaded vs. Asynchonous Are 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/
What is the most efficient way for a computer to get a job done? Like a corporation, the bigger the system gets, the more overhead there is to manage production.
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!