上一文中讲到 defer 会在宿主函数 return 之前调用,那么我们就是想在宿主函数执行到中间调用,怎么办呢?

1. 改变宿主函数逻辑,分成多个函数,需要的那个函数里 defer 。

2. 使用匿名函数,将 defer 包在匿名函数里:

调用:

输出:

可以看到,defer 的那个 unlock 实在匿名函数执行完成之前被调用的,已经跑到了 exit inner 后面。

多个 defer 怎么办?

这时遵循栈的顺序,即,后定义先执行。

defer a()

defer b()

defer c()

他们的执行顺序是:

c()

b()

a()

HOHO...

最新文章

  1. SqlServer数据冗余的问题和解决
  2. 关于nodejs能同时接受多少个请求的问题?////zzz
  3. vertical-align及IE7下的inline-block
  4. NGUI Atlas
  5. iOS-appStore发布流程
  6. [IT扫盲]软件测试时期版本的称呼
  7. Good Bye 2013
  8. Linux inotify功能及实现原理
  9. Android基本控件之GridView
  10. 《WPF程序设计指南》读书笔记——第3章 内容的概念
  11. Supervised Learning-Regression
  12. 简单的jquery选择器的实现
  13. 新安装的linux(linux mint 或则ubuntu)系统中安装postgresql-xc安装的包
  14. Linux命令之文本处理(二)
  15. iOS8学习笔记2--autolayout
  16. Maven 浅谈一
  17. android studio 环境变量配置
  18. 求逆序对常用的两种算法 ----归并排 & 树状数组
  19. Networked Graphics: Building Networked Games and Virtual Environments (Anthony Steed / Manuel Fradinho Oliveira 著)
  20. GZipStream 压缩与解压数据

热门文章

  1. yii2快速導出phpexcel
  2. springboot-thymeleaf
  3. Maven私服(Repository Manager) - Nexus安装和使用(详细过程)
  4. [转]Visual Studio 2015源文件编码问题(936)
  5. PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
  6. HBase多条件及分页查询的一些方法
  7. python 写入Excel
  8. common lisp里的几个操作符
  9. jsonp 的实质
  10. What do cryptic Github comments mean?