golang-map并发读写测试

package main

import (
    "fmt"
    "math"
    "sync"
)

var l sync.RWMutex

func main() {
    m := make(map[int]int)
    go func() {
        for {
            l.Lock()
            for k, v := range m {
                fmt.Printf("%v: %v\n", k, v)
            }
            l.Unlock()
        }
    }()
    go func() {
        for {

            for i := 0; i < math.MaxInt64; i++ {
                l.Lock()
                m[i] = i
                l.Unlock()
            }

        }
    }()
    select {}

}

普通的map 读写的时候如果不加lock 会导致并发问题, 因此使用时候要记得加锁

本文链接:参与评论 »

--EOF--

提醒:本文最后更新于 467 天前,文中所描述的信息可能已发生改变,请谨慎使用。

Comments