https://stackoverflow.com/questions/49591611/c-multithreading-channels-with-condition-variables
https://st.xorian.net/blog/2012/08/go-style-channel-in-c/
https://www.boost.org/doc/libs/1_63_0/libs/fiber/doc/html/fiber/synchronization/channels/buffered_channel.html
https://gist.github.com/vmrob/e4fde208302ae8979b57
https://github.com/ahorn/cpp-channel
https://www.jianshu.com/p/c1dfa1d40f53
https://www.zhihu.com/question/24116967