I don't study this area of computing to be honest. Actually my references is some web and academic articles then I'm insecure but curious about some concepts of parallel computing.
I've formulated two sentences and would like to validate it.
First one:
Imperative languages uses variables to abstract hardware memory of a computer. If there is two parallel threads and at least one performs a write, without synchronization mechanisms, a data race happens.
We can consider that data races are intrinsic to Imperative Programming paradigm?
Second one:
Data races can produces unexpected results. Since data races occurs with multiple parallel threads, then they are a problem of multithreading ability.
We can consider that data races is an obstacle not only specifically to multithreading but for parallel computing in general?
My real goal is write some text correlating Imperative Programming and Parallel Processing to explain the benefits of Functional Programming. Any correction and further information is welcome.