您现在的位置是:主页 > news > 国外做机器人的网站/百度权重查询

国外做机器人的网站/百度权重查询

admin2025/6/16 3:03:07news

简介国外做机器人的网站,百度权重查询,网站怎么做图片滚动,庐江网站制作读写锁是针对读写的互斥锁基本遵循两大原则:1、可以随便读,多个goroutine同时读2、写的时候,啥也不能干。不能读也不能写RWMutex提供了四个方法:func (*RWMutex) Lock // 写锁定func (*RWMutex) Unlock // 写解锁func (*RWMutex) …

国外做机器人的网站,百度权重查询,网站怎么做图片滚动,庐江网站制作读写锁是针对读写的互斥锁基本遵循两大原则:1、可以随便读,多个goroutine同时读2、写的时候,啥也不能干。不能读也不能写RWMutex提供了四个方法:func (*RWMutex) Lock // 写锁定func (*RWMutex) Unlock // 写解锁func (*RWMutex) …

读写锁是针对读写的互斥锁

基本遵循两大原则:

1、可以随便读,多个goroutine同时读

2、写的时候,啥也不能干。不能读也不能写

RWMutex提供了四个方法:

func (*RWMutex) Lock // 写锁定

func (*RWMutex) Unlock // 写解锁

func (*RWMutex) RLock // 读锁定

func (*RWMutex) RUnlock // 读解锁

一、随便读

package main

import (

"sync"

"time"

)

var m *sync.RWMutex

func main() {

m = new(sync.RWMutex)

// 多个同时读

go read(1)

go read(2)

time.Sleep(2*time.Second)

}

func read(i int) {

println(i,"read start")

m.RLock()

println(i,"reading")

time.Sleep(1*time.Second)

m.RUnlock()

println(i,"read over")

}运行结果:

1 read start

1 reading

2 read start

2 reading

1 read over

2 read over

可以看出1 读还没有结束,2已经在读

二、写的时候啥也不能干package main

import (

"sync"

"time"

)

var m *sync.RWMutex

func main() {

m = new(sync.RWMutex)

// 写的时候啥也不能干

go write(1)

go read(2)

go write(3)

time.Sleep(2*time.Second)

}

func read(i int) {

println(i,"read start")

m.RLock()

println(i,"reading")

time.Sleep(1*time.Second)

m.RUnlock()

println(i,"read over")

}

func write(i int) {

println(i,"write start")

m.Lock()

println(i,"writing")

time.Sleep(1*time.Second)

m.Unlock()

println(i,"write over")

}输出:

1 write start

1 writing

2 read start

3 write start

1 writing over

2 reading

2 read over

3 writing

3 write over

有疑问加站长微信联系(非本文作者)