Go Map源码阅读和分析

golang中的map是如何实现的,为什么map支持并发读,而不支持并发写?map中key和value是如何组织的,扩容机制是什么?带着这些问题,来阅读以下golang的map源代码。