Synchronization is like a sub-problem of working with concurrency.
In this context they’re the same afaics
CPU reordering isn’t hard to understand, itself, but building systems that depend on it is (like building a time sharing OS… very difficult) because it’s difficult to reason about. The implications of it are hard to understand because, as you say, we’re not naturally apt at multitasking
In this context they’re the same afaics
CPU reordering isn’t hard to understand, itself, but building systems that depend on it is (like building a time sharing OS… very difficult) because it’s difficult to reason about. The implications of it are hard to understand because, as you say, we’re not naturally apt at multitasking