标签: concurrency go
首先,如果这是一个愚蠢的问题,请原谅我。 我想创建一个通用的同步列表(就像在Java中一样),以便在我的Go项目中重用。 我找到了Go的linked list的来源,我想知道将mutex锁添加到列表操作函数就足够了吗?
答案 0 :(得分:3)
如果您要制作并发安全容器,则需要保护所有对数据的访问权限,而不仅仅是写入。检查元素,甚至调用Len()而不同步读取可能会返回无效或损坏的数据。
Len()
使用互斥锁保护整个数据结构可能更容易,而不是实现您自己的并发链表。