I haven't been able to verify this information against the documentation. Please /msg if you know more.
In Algol 68, there are several types of clauses ('block's in C terminology) into which statements can be combined:
The parallel clause exists to allow truly parallel implementations. The effects on common data are completely unpredictable: no possible order of execution of statements may explain the outcome. For instance, the collateral clause
(i +:= 1, i -:= 1) is guaranteed to have no net effect on the value of
i; the corresponding parallel clause may change its value to anything, depending on the implementation.
The language offers semaphores as a synchronization mechanism.