【golang】并发编程通过共享通信

golang 并发编程通过共享通信-不推荐

1 我理解的编发编程的基础于协调,协调就需于对话、沟通,难点也在此,并发本身不复杂,编发编程绕不开资源竞争问题,所以写并发我们写的最多的就是资源竞争,资源竞争操作必须保证其原子性,资源竞争后面分享

2 并发编程协成通信方式常见有两种:共享、消息,共享一般情况下,普通开发者接触最多的就是内存共享,在golang 中共享不是推荐通信手段,通过管道channel发送消息是一种更好的方式

摘抄一段官方的共享内存实例如下:(程序臃肿、业务复杂后维护起来更加琐碎)

package main

import (

    "fmt"

    "runtime"

    "sync"

)

var counter int = 0

func Count(lock *sync.Mutex) {

    lock.Lock()

    counter++

    fmt.Println(counter)

    lock.Unlock()

}

func main() {

    lock := &sync.Mutex{}

    for i := 0; i

        go Count(lock)

    }

    for {

        lock.Lock()

        c := counter

        lock.Unlock()

        runtime.Gosched()

        if c >= 10 {

            break

        }

    }

}

3 结论:不推荐

由于版权原因,本站共享资源只供云盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件并发送到xkdadmin@163.com告知,我们会在收到邮件后72小时内删除。
想开点 » 【golang】并发编程通过共享通信