在Go中,可以使用sync包中的锁来实现线程安全添加数组元素。具体方法如下: 1. 定义一个包含需要添加元素数组和一个互斥锁的结构体: ``` type SafeArray struct { mu sync.Mutex arr []int } ``` 2. 定义一个添加元素的方法,在方法中先获取锁,添加元素后释放锁: ``` func (sa *SafeArray) AddElement(elem int) { sa.mu.Lock() defer sa.mu.Unlock() sa.arr = append(sa.arr, elem) } ``` 这里使用defer关键字来确保在方法结束时释放锁。 3. 在需要添加元素的地方创建SafeArray实例,调用AddElement方法添加元素: ``` sa := SafeArray{arr: []int{1, 2, 3}} sa.AddElement(4) ``` 在多个线程同时调用AddElement方法时,会先获取锁,然后逐个添加元素,最后释放锁保证线程安全。 注意:在Go中,使用channel也可以实现线程安全的添加元素,具体实现方法可以参考相关文档。