先说结论:go中的map是不支持并发读写的,要支持并发读写需要使用到sync.map,但是这里的并发读写并不只有对map的读写操作,对key值并发读写一样是不行的。
都知道map的并发读写是不行的,我在写代码中也时刻保持着这个原则,但是还是报了panic,使用了空指针,我的方法的关键操作代码如下:
这个函数中会有对key值的写操作和读操作。
所以在单线程时是没有问题的,但是在多线程并行时会出现panic,因为写操作和读操作在同时进行。
所以对于map,不光是不能同时对map进行读写操作,还不能对其中涉及的key和calue进行读写操作。