成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

鎖/競爭(互斥鎖、讀寫鎖、原子鎖)

a. import(“sync”)
b. 互斥鎖, var mu sync.Mutex (只有一個釋放之后,下一個才能進(jìn)去)(sync.Mutex類型只有兩個公開的指針方法:Lock、Unlock)
c. 讀寫鎖, var mu sync.RWMutex(讀不鎖,只有寫才鎖)
d.原子鎖,import "sync/atomic"

創(chuàng)新互聯(lián)是專業(yè)的船營網(wǎng)站建設(shè)公司,船營接單;提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行船營網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!


比如map,文件等被多個goroutine修改,則要做好鎖。
只讀無需加鎖

用go build -race xxx.go來編譯,并運行二進(jìn)制文件來查看競爭關(guān)系


互斥鎖舉例:

a := make(map[int]int, 5)
    a[0] = 10
    fmt.Println(a)
    for i := 0; i < 2; i++ {
        go func(b map[int]int){
            //設(shè)置互斥鎖
            lock.Lock()
            a[0] = rand.Intn(100)
            lock.Unlock()
        }(a)
    }
    //互斥鎖不讀還是寫,都要設(shè)置才能確保不競爭
    lock.Lock()
    fmt.Println(a)
    lock.Unlock()

讀寫鎖(包括原子鎖)舉例:

package main

import (
    "sync"
    "fmt"
    "math/rand"
    "time"
    "sync/atomic"
)

var rwLock sync.RWMutex

func main() {

    var count int32
    //讀寫鎖
    a := make(map[int]int, 5)
    a[0] = 10
    fmt.Println(a)
    for i := 0; i < 2; i++ {
        go func(b map[int]int){
            //寫的鎖是Lock
            rwLock.Lock()
            a[0] = rand.Intn(100)
            rwLock.Unlock()
        }(a)
    }
    for i := 0; i < 100; i++ {
        go func(b map[int]int){
            //讀的鎖是RLock
            rwLock.RLock()
            fmt.Println(a)
            //原子鎖引用賦值count,每次加一
            atomic.AddInt32(&count, 1)
            rwLock.RUnlock()
        }(a)
    }
    time.Sleep(time.Second)
    //輸出原子鎖次數(shù)也要有固定寫法
    fmt.Println(atomic.LoadInt32(&count))
}

鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
鎖/競爭(互斥鎖、讀寫鎖、原子鎖)


鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
鎖/競爭(互斥鎖、讀寫鎖、原子鎖)

分享標(biāo)題:鎖/競爭(互斥鎖、讀寫鎖、原子鎖)
URL網(wǎng)址:http://jinyejixie.com/article22/pochcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號網(wǎng)站排名、商城網(wǎng)站建站公司、App設(shè)計、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
麻江县| 瑞丽市| 临湘市| 东乡| 贺州市| 漳平市| 宁阳县| 巴彦淖尔市| 涿鹿县| 昔阳县| 墨脱县| 金湖县| 通道| 宜黄县| 甘肃省| 中山市| 平遥县| 罗田县| 浑源县| 阳山县| 抚远县| 万盛区| 瑞丽市| 阿勒泰市| 永仁县| 嘉义县| 崇礼县| 德化县| 浠水县| 博乐市| 两当县| 台南县| 岚皋县| 兴宁市| 綦江县| 西充县| 昭觉县| 金溪县| 杨浦区| 北川| 华阴市|