Hacker News new | ask | show | jobs
by tdeck 1108 days ago
I was a freshman CS student in 2010-2011 and we learned multi-threaded programming in our first year.
2 comments

Sure but you would have learned it in 1995 too.
As a freshman CS student? Granted things were changing rapidly in the 90s, but this wasn't the case my freshman year a couple of years prior. I know that I was aware of the concept of threading by my sophomore or junior year, and by the time I graduated had encountered them first hand. I'm not sure we even covered multitasking (fork() and friends) at all in my freshman year, but of that I'm far less certain.
From my freshman years around 2005, I vaguely remember that multi-thread GUI apps were:

- a way to avoid blocking the UI,

- tool to gain some perf. on new fancy multi-core processors,

- making the code much harder to read and debug, which often makes them a victim in a cost-benefit analysis.

Point is the programming paradigm of POSIX threads or multitasking wasn't a new concept then and likewise been in the curriculum for a while. Multi-core only brought a new level of performance to it.

There were in fact attempts for new concurrency paradigms (like Software Transactional Memory) which however led nowhere outside academia.

I learned about it in 1991.
Threads are but one way to handle the concurrency/parallelism problem on a given set of processors, old or new.

So what are some other ways of handling multi-core code that you were taught?