在Windows平台下, 对线程的同步控制,可以有Critical Section,Mutex,Semaphore,Event 等方式.

在IOS平台,使用GCD进行简单的多线程编程时,可以使用dispatch_semaphore_t进行相应的同步操作.

IOS平台上没有对应的Event这个控制对像. 对于一些适合Event模式的情况下,可以通过dispatch_semaphore_t模拟event(autoReset)的特性.

set:

-(void)set
{
dispatch_semaphore_wait(_semaphore, DISPATCH_TIME_NOW);
dispatch_semaphore_signal(_semaphore);
}

reset:

-(void)reset
{
dispatch_semaphore_wait(_semaphore, DISPATCH_TIME_NOW);
}

wait:

-(BOOL)wait:(dispatch_time_t)t
{
return dispatch_semaphore_wait(_semaphore, t);
}

以上模拟的是非安全的autoReset模式的Event. 在要求不高的情况下能简单使用.

最新文章

  1. 【C#】【Thread】Barrier任务并行
  2. php中几个字符串替换函数详解
  3. 小知识:Python函数传递变长
  4. DB2使用笔记
  5. Linux chmod command
  6. Java汉字排序(1)排序前要了解的知识(数组和list的排序接口)
  7. 自定义的IntentFileter 无法找到activity
  8. error MSB6006: “CL.exe”已退出
  9. Codeforces Round #204 (Div. 2): B
  10. JS表格排序
  11. HTML5:footer定位(底部+居中)的探讨+div图片居中问题
  12. Android得到视频缩略图
  13. 一次线上Mysql数据库崩溃事故的记录
  14. java 三大框架
  15. snowflake分布式唯一id c#实现
  16. 洛谷 P3797 妖梦斩木棒
  17. 修改flume源码,使其HTTPSource具备访问路径功能
  18. 如何查询linux下BIOS信息
  19. 3.spring环境搭建
  20. 终于做完了这个pj

热门文章

  1. Xcode 7如何 免费 真机调试iOS应用
  2. 算法-MergeSort
  3. C# Lamada表达式
  4. JQ源码学习-1-无new构建
  5. controller 解析xml文件
  6. C语言程序设计第五次作业
  7. 什么是java?
  8. django使用ldap认证
  9. AXUre
  10. NOIP 考前DP 复习