美文网首页
go defer用法

go defer用法

作者: 夜空中乄最亮的星 | 来源:发表于2018-02-09 16:33 被阅读0次

defer 通常用于 open/close, connect/disconnect, lock/unlock 等这些成对的操作, 来保证在任何情况下资源都被正确释放. 在这个角度来说, defer 操作和 Java 中的 try ... finally 语句块有异曲同工之处.

var mutex sync.Mutex
var count = 0
 
func increment() {
  mutex.Lock()
  defer mutex.Unlock()
  count++
}

increment函数中, 我们为了避免竞态条件的出现, 而使用了 Mutex 进行加锁. 而在进行并发编程时, 加锁了却忘记(或某种情况下 unlock 没有被执行), 往往会造成灾难性的后果. 为了在任意情况下, 都要保证在加锁操作后, 都进行对应的解锁操作, 我们可以使用 defer 调用解锁操作.

相关文章

  • Go语言基础(二)

    目录 关键字 defer go的defer用法范例[https://www.jianshu.com/p/7ada9...

  • goLang异常处理

    defer defer是go提供的一种资源处理的方式。defer的用法遵循3个原则在defer表达式被运算的同时,...

  • go defer用法

    defer 通常用于 open/close, connect/disconnect, lock/unlock 等这...

  • go语言的defer语句

    go语言defer语句的用法 defer的语法 defer后面必须是函数调用语句,不能是其他语句,否则编译器会出错...

  • GO中defer关键字

    defer关键字在go中用于return之前执行,在golang官方文档中有说明。defer的用法类似java中的...

  • go的defer用法范例

    摘抄整理自《the way to go》 关键字defer允许我们推迟到函数返回之前(或任意位置执行return语...

  • go语言defer的用法

    用法介绍: defer是Go语言中的延迟执行语句,用来添加函数结束时执行的代码,常用于释放某些已分配的资源、关闭数...

  • golang defer 特性

    defer.go

  • Go 延迟调用 defer 用法详解

    引子 概述 defer (延迟调用)是 Go语言中的一个关键字,一般用于释放资源和连接、关闭文件、释放锁等。和de...

  • Go Defer

    Go Defer 如果函数里面有多条defer指令,他们的执行顺序是反序,即后定义的defer先执行。 defer...

网友评论

      本文标题:go defer用法

      本文链接:https://www.haomeiwen.com/subject/nixqtftx.html