logoalt Hacker News

jrvieiralast Friday at 8:51 PM2 repliesview on HN

careful: in many programming contexts parallelism and concurrency are exclusive concepts, and sometimes under the umbrella of async, which is a term that applies to a different domain.

in other contexts these words don't describe disjoint sets of things so it's important to clearly define your terms when talking about software.


Replies

merblast Friday at 9:04 PM

Yeah concurrency is not parallelism. https://go.dev/blog/waza-talk

show 1 reply
Lichtsolast Friday at 9:22 PM

yes, some people swap the meaning of concurrency and asynchrony. But, almost all implementations of async use main event loops, global interpreter lock, co-routines etc. and thus at the end of the day only do one thing at a time.

Therefore I think this definition makes the most sense in practical terms. Defining concurrency as the superset is a useful construct because you have to deal with the same issues in both cases. And differentiating asynchrony and parallelism makes sense because it changes the trade-off of latency and energy consumption (if the bandwidth is fixed).