Skip to content

[Bug-语法进阶-并发-锁]:互斥锁一个示例中打印数据与解锁顺序问题 #72

@ZhongWwwHhh

Description

@ZhongWwwHhh

环境

网站地址(必填): 语法进阶-并发-互斥锁

章节目录(必填): 语法进阶-并发-互斥锁-使用互斥锁可以非常完美的解决上述问题,例子如下后接的代码段

问题描述

其中有

      // 修改数据
      *data = temp + ans
      // 解锁
      lock.Unlock()
      fmt.Println(*data)
      wait.Done()

协程中,变量先解锁,后打印,无法保证读出值与修改数据结果一致,表现出一致结果是因为上文中有长时间模拟延迟 ,应交换解锁与打印次序

相关PR:#73

Go语言新人,如我理解有误,烦请轻喷

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions