zoukankan      html  css  js  c++  java
  • 学习Go语言之使用channel避免竞态问题

     1 // 使用channel避免竞态问题
     2 package main
     3 
     4 import (
     5     "fmt"
     6     "sync"
     7 )
     8 
     9 var (
    10     i  int
    11     wg sync.WaitGroup
    12 )
    13 
    14 func AutoIncrease(ch chan int) {
    15     defer wg.Done()
    16     i = <-ch
    17     i++
    18     ch <- i
    19 }
    20 
    21 func main() {
    22     //通道读写时会阻塞
    23     ch := make(chan int, 10)
    24     ch <- 0
    25     for k := 0; k < 10; k++ {
    26         wg.Add(1)
    27         go AutoIncrease(ch)
    28     }
    29     wg.Wait()
    30     //此时channel中的值和i一样
    31     // i := <-ch
    32     fmt.Println(i)
    33 }
  • 相关阅读:
    TS 3.1
    TS 3.1
    TS 3.1
    TS 3.1
    TS 3.1
    TS 3.1
    测试面试总结02
    测试出的缺陷(bug)
    测试用例的内容
    微信发红包测试要点
  • 原文地址:https://www.cnblogs.com/shi2310/p/10928890.html
Copyright © 2011-2022 走看看