memory orders
memory_order_release 意为只有前面的语句都执行完后,这条语句才会执行。
memory_order_acquire 意为只有这条语句执行完之后,后面的语句才会执行。
memory_order_consume 和 memory_order_acquire 差不多,只是memory_order_acquire 与 memory_order_release 有一个同步操作,而 memory_order_consume 则只是把执行 load 的对象缓存在内存中,并没有同步语义。memory_order_consume 在多数的情况下的效率要高于 memory_order_acquire,因为多数编程器对其做了优化。