Go语言的排它锁sync.Mutex

原创 2015年07月10日 14:13:14
package main

import (
    "fmt"
    "sync"
    "time"
)

var m *sync.Mutex

func main() {
    m = new(sync.Mutex)

    go lock(1)
    time.Sleep(time.Second)

    lock(2)

    fmt.Printf("%s\n", "exit!")
}

func lock(i int){
    println(i, "lock start")

    m.Lock()
    println(i, "lock")

    time.Sleep(10 * time.Second)

    m.Unlock()
    println(i, "unlock")
}

Go语言:使用sort包对任意类型元素的集合进行排序

使用sort包的函数进行排序时,
  • books1958
  • books1958
  • 2014年04月15日 17:23
  • 2861

go语言十大排序算法总结

选择排序选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第i遍处理是将L[i..n]中最小者与L[i]交换位置。这样,经过i遍处理之后,前i个记录的位置已经是正确的了。 选择排序是不稳定的。...
  • guoer9973
  • guoer9973
  • 2016年07月16日 15:40
  • 5062

Go语言无孔不入的2016:跻身主流编程语言、国内大热、极速提升、尖端应用……

2015,Go迎来了全迸发的一年。时隔一年,回头再看,Go已跻身主流编程语言行列。在国内,Go的热度更是不凡。2016,对于Go来说,又是怎样的一年?前言 Go语言已经7岁了!今年8月,Go 1...
  • andylau00j
  • andylau00j
  • 2017年01月06日 19:17
  • 1227

golang sync mutex 互斥锁

golang的多线程固然好用,但是有时候需要对数据进行上锁,防止数据被其它线程更改。那么sync包下的Mutex非常好用。 Mutex是一个互斥锁。可以作为struct的一部分,这样这个stru...
  • u011511092
  • u011511092
  • 2014年05月07日 13:44
  • 4335

go语言的官方包sync.Pool的实现原理和适用场景

已经使用golang有一段时间,go的协程和gc垃圾回收特性的确会提高程序的开发效率。但是毕竟是一门新语言,如果对于它的机制不了解,用起来可能会蹦出各种潘多拉盒子。今天就讲讲我在项目中用到的sync包...
  • yongjian_lian
  • yongjian_lian
  • 2014年12月21日 10:35
  • 5567

go语言的官方包sync.Pool

已经使用golang有一段时间,go的协程和gc垃圾回收特性的确会提高程序的开发效率。但是毕竟是一门新语言,如果对于它的机制不了解,用起来可能会蹦出各种潘多拉盒子。今天就讲讲我在项目中用到的sync包...
  • yangyangye
  • yangyangye
  • 2017年03月30日 10:38
  • 575

Go 语言sync中waitgroup使用.小实例

package main import ( "fmt" "sync" "time" ) var waitgroup sync.WaitGroup func Test(x int) { f...
  • fyxichen
  • fyxichen
  • 2015年08月28日 13:36
  • 1648

5_sysv_sync_mutex.tgz

  • 2015年01月05日 18:50
  • 2KB
  • 下载

3_pthread_sync_mutex_with_productor_and_consumer.tgz

  • 2014年12月23日 15:25
  • 1KB
  • 下载

Go 1.9 sync Map 分析图

  • 2017年12月15日 17:07
  • 279KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Go语言的排它锁sync.Mutex
举报原因:
原因补充:

(最多只允许输入30个字)