go sync的并发同步简单用法
来源:互联网 发布:小说有声阅读软件 编辑:程序博客网 时间:2024/06/06 02:11
//通过golang中的 goroutine 与sync.Mutex进行并发同步
package main
import (
"fmt"
"runtime"
"sync"
)
var count int = 0
func counter(lock *sync.Mutex) {
lock.Lock()
count++
fmt.Println(count)
lock.Unlock()
}
func main() {
lock := &sync.Mutex{} //传递指针是为了防止 函数内的锁和 调用锁不一致
for i := 0; i < 100000; i++ {
go counter(lock)
}
for {
lock.Lock()
c := count
lock.Unlock()
runtime.Gosched() //把时间片给别的goroutine 未来某个时刻运行该routine
if c >= 100000 {
fmt.Println("gorountine end")
break
}
}
}
阅读全文
0 0
- go sync的并发同步简单用法
- Go并发:利用sync.WaitGroup实现协程同步
- go语言:sync.Once的用法
- GO中的sync.waitgroup的用法
- Go并发:利用sync.Once延迟加载
- Go 1.9 以后 map 并发读写的问题,sync.Map 揭秘
- Go并发编程之同步
- sync 命令的用法
- sync 命令的用法
- 并行、并发、synchonrized同步的用法
- Go?GO!(三) Go的面向对象技术、并发和包的简单介绍
- go的临时对象池--sync.Pool
- go rpc 简单用法
- GO语言的并发
- Go-简洁的并发
- Go-简洁的并发
- Go-简洁的并发
- Go-简洁的并发
- Java类加载机制解析
- CodeForces 546D(求质因数的个数)
- PHP入门(第二弹:下载WAMPServer集成开发环境)
- Android Fragment懒加载简单实现
- 《失控》之八--封闭系统
- go sync的并发同步简单用法
- 关于laravel中key的错误cipher and / or key length are invalid
- Restful API 安全
- datastage解决cannot get exclusive access to a log for a job的方发
- 《失控》之九--《冒出》的生态圈
- 给初学者的RxJava2.0教程(二)
- STL之set和multiset
- hdu4549 M斐波那契数列
- CodeChef:Good Pairs(dp & 二进制)