http://preshing.com/20140709/the-purpose-of-memory_order_consume-in-cpp11/