https://en.wikipedia.org/wiki/Compare-and-swap
http://blog.chinaunix.net/uid-25424552-id-3772253.html
https://coolshell.cn/articles/8239.html
https://www.ibm.com/developerworks/cn/aix/library/au-multithreaded_structures2/index.html
https://www.ibm.com/developerworks/cn/linux/l-cn-lockfree/