返回介绍

第一百零四天

发布于 2023-06-25 22:22:03 字数 1990 浏览 0 评论 0 收藏 0

1.关于同步锁,下面说法正确的是?

  • A. 当一个 goroutine 获得了 Mutex 后,其他 goroutine 就只能乖乖的等待,除非该 goroutine 释放这个 Mutex;
  • B. RWMutex 在读锁占用的情况下,会阻止写,但不阻止读;
  • C. RWMutex 在写锁占用情况下,会阻止任何其他 goroutine(无论读和写)进来,整个锁相当于由该 goroutine 独占;
  • D. Lock() 操作需要保证有 Unlock() 或 RUnlock() 调用与之对应;

参考答案及解析:ABC。

2.下面代码输出什么?请简要说明。

func main() {
    var wg sync.WaitGroup
    wg.Add(1)
    go func() {
        time.Sleep(time.Millisecond)
        wg.Done()
        wg.Add(1)
    }()
    wg.Wait()
}
  • A. 不能编译;
  • B. 无输出,正常退出;
  • C. 程序 hang 住;
  • D. panic;

参考答案及解析:D。WaitGroup 在调用 Wait() 之后不能再调用 Add() 方法的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文