https://medium.com/plain-golang-tutorial/go-high-performance-programming-ep10-two-useful-golang-lock-free-programming-tips-d51b605d8598