我只是想知道是否有可能由于同时将相同的值写入全局变量而导致损坏。我的大脑告诉我这没有任何问题,因为它只是内存中的一个位置,但我认为我应该仔细检查这个假设。
我有写入全局地图的并发进程var linksToVisit map[string]bool。该地图实际上是在跟踪网站上的哪些链接需要进一步抓取。
然而,并发进程可能在它们各自的页面上有相同的链接,因此每个进程都会将相同的链接标记为true并发。在这种情况下不使用锁没有错吧?注意:我从不将值改回,false所以要么键存在并且它的值为真,要么它不存在。
IE
var linksToVisit = map[string]bool{}
...
// somewhere later a goroutine finds a link and marks it as true
// it is never marked as false anywhere
linksToVisit[someLink] = true
白衣非少年
白猪掌柜的
ibeautiful
侃侃尔雅