package main
import (
"sync"
"time"
)
//互斥锁
//type Locker interface {
//Lock()
//Unlock()
//}
//golang是一门语言级别支持并发的程序语言。golang中使用go语句来开启一个新的协程。
//goroutine是非常轻量的,除了给它分配栈空间,它所占用的内存空间是微乎其微的
//应用场景
import (
"sync"
"time"
)
var m *sync.RWMutex
var val = 0
func main() {
m = new(sync.RWMutex)
go read(1)
go write(2)
go read(3)
time.Sleep(5 * time.Second)
}
func read(i int) {
m.RLock()
time.Sleep(1 * time.Second)
println("val: ", val)
time.Sleep(1 * time.Second)
m.RUnlock()
}
func write(i int) {
m.Lock()
val = 10
time.Sleep(1 * time.Second)
m.Unlock()
}
end.
有疑问加站长微信联系(非本文作者)