Also, just to directly address the bit of the blog post that you quoted:
In the examples you've provided, you're not working with different copies of the values in question—all the threads are attempting to modify the same location in memory concurrently.