Concurrency: the execution of multiple instruction sequences at the same time. Concurrent: existing, happening, or done at the same time. You could say it was concurrent when they crashed into the trees and shrubs and the older sister dug the paddle into the side bank to push them back to the center of the Rio Grande and the branches latched onto the younger sister’s shirt, pulling her out of the inflatable canoe and into the water. The Rio Grande had feasted that summer, a rapid stream of murky water fed by monsoon rains. You could say they executed concurrency when the older sister, who had drifted further down the river in the canoe, told the younger sister, who was clinging to the branch, to let go and drift downward, except the younger sister felt like a leaf at the mercy of the water’s direction, so she executed her own instructions: cling on for dear life, try to hold onto her hat and flip flops so that after she emerged safely from this situation (and surely she would), she could still walk back to shore under the glaring sun.
Race condition: a bug that occurs in the timing or ordering of events; when two or more processes attempt to access and manipulate a shared resource. The older sister stopped the canoe by stabbing the paddle into the earth, wedging the nose into a bush, and hopped off onto the side bank to run back. The younger sister, fingers purple from the chill of the current, pulled herself upward, gripping the sharp tree branches, scratching her fingers and arms, and attempted to heave her body to land. By the time the older sister made it over, the younger sister had already dragged herself to land–flip flops, hat, and all–drying under the sun and waiting for a rapidly beating heart to slow.
Atomicity: defines whether an operation can only be observed as started or completed, and not in any partially completed state. For example, the older sister observed the younger in the canoe only, and then in the water only. For example, the older sister observed the younger sister alive. For example, the younger sister imagined her body getting washed away somewhere without cellular signal, buried far from roads and cars, and even though she considered herself an endurance swimmer, what was that compared to the force of nature? Even so, she was observed alive.
Blocking: processes can block waiting for resources. By the time they reached land, their hair had dried and they lifted the canoe up a hill to reach the highway. More accurately, the older sister, a frequent rock climber, carried the entire canoe up herself and the younger sister carried the paddles and still, her thighs burned as they climbed a nearly vertical incline. At the top, they called an Uber and waited under the shade where cars zoomed past and might’ve provided a pleasant breeze if they weren’t so dangerously close.
Starvation: when a process does not obtain service to progress. Perhaps you could say they starved their parents of information. A fun trip, an exciting trip, a worthwhile trip, not a life-threatening trip in which they canoed down the Rio Grande without life jackets because both sisters used to swim freestyle for hours in their high school’s over-chlorinated swimming pool and assumed that should be enough. But enough against a current? If only the younger sister had let go of the branch and given it a try.
Deadlock: occurs when two processes are blocked and neither can proceed to execute. The older sister is waiting for the younger sister to say I’m ok now, safe and alive and that’s all that matters. The younger sister is waiting for the older sister to say I shouldn’t have taken you canoeing without life vests, I should’ve checked the river flow, who knew it’d be so harsh. They order pho for dinner and talk about tumbleweed and the weather.
-- Lucy Zhang writes, codes, and watches anime. Her work has appeared in Atticus Review, The Journal of Compressed Creative Arts, Pidgeonholes, Jellyfish Review, and elsewhere. Find her at https://kowaretasekai.wordpress.com/ or on Twitter @Dango_Ramen.