首先,如果这是一个愚蠢的问题,请原谅我。 我想创建一个通用的同步列表(就像在Java中),以便在我的Go项目中重复使用。 我找到了Go的链表源代码,我想知道是否简单地在列表操作函数中添加互斥锁就足够了?
如果你要创建一个并发安全的容器,你需要保护对数据的所有访问,而不仅仅是写入。未同步读取的检查元素甚至调用`Len()`可能会返回无效或损坏的数据。最好使用互斥锁来保护整个数据结构,而不是实现自己的并发链表。