1. 首页
  2. 编程语言
  3. 其他
  4. 浅谈golang并发操作变量安全的问题

浅谈golang并发操作变量安全的问题

上传者: 2021-12-29 22:35:00上传 PDF文件 90.54 KB 热度 25次

数据竞争会在两个以上的goroutine并发访问相同的变量且至少其中一个为写操作时发生。现在我们来讲第三种情况具体操作golang 我们可以通过channel作为计量器,可以保证可以有多少个goroutine可以同时访问。可以保证同一时刻只有一个goroutine来访问。在Lock和Unlock之间的代码段中的内容goroutine可以随便读取或者修改,这个代码段叫做临界区。RLock()和RUnlock()获取和释放一个读取或者共享锁。这种情况下这些数据可能会以与当初goroutine写入顺序不同的顺序被提交到主存。有两种方法解决:1.变量限定在goroutine中使用,不访问共享变量2.用互斥条件访问

用户评论