参考文档1:
https://www.cnblogs.com/canger/p/9760217.html
参考文档2:
https://blog.csdn.net/u012410733/article/details/63684663
参考文档3:
https://segmentfault.com/a/1190000017369618