不同请求来了后 同一个变量在不同的请求中是相同的吗?共享内存是指变量能通用?
来源:4-3 token bucket
pplegend
2018-08-29
比如我在代码里定义了 var a=4, 第一个请求访问a时改变了a的值,那第二个请求访问a,a的值应该还是4啊,不知道我理解的对不对。不太理解本章所说的共享内存是啥意思
写回答
1回答
-
艾文西
2018-08-29
共享内存指的是在并发操作下同一个内存数据被多个协程/线程共同访问。
不只是stack上的变量,heap上的也会有共享访问问题。在这种消息同步机制下,容易出现race condition,避免race condition就要加锁,无论从实现和可维护性来说都是比较低的。
共享通道是所谓的csp模型下比较优雅的实现方式,这也是go的优势,通过channel把信息同步给每个协程而不是通过读写同一个变量。建议下来找一些csp相关的内容看下
022018-08-29
相似问题