dongyi4170 2019-05-24 10:35
浏览 232
已采纳

Golang可见性或CPU线程缓存问题

1) How does golang solve visibility issue?

2) Is there any issues with below code?

package main

type Service struct {
    stop bool
}

func (s *Service) Run() {
    for !s.stop {
        //Some logic
    }
}

func (s *Service) Stop() {
    s.stop = true
}

func main() {
    s := &Service{}
    go s.Run()
    //Some logic
    s.Stop()
}
  • 写回答

1条回答 默认 最新

  • dongxun2089 2019-05-24 10:50
    关注

    I recommend to use context.WithCancel to stop goroutines in this case.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 arduino控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上