文档章节

dispatch_sync引起死锁的情况和原因

Gerry1218
 Gerry1218
发布于 2016/05/25 17:20
字数 179
阅读 31
收藏 0
  • dispatch_async(queue, blk)

blk会被放入线程队列的尾部等待执行,函数立刻返回,不会阻塞当前的线程

  • dispatch_sync(queue, blk)

blk也会放入线程队列的尾部等待执行,

这里有2种情况:

1. 执行dispatch_sync的线程和blk放入的线程是同一个线程时,当前线程已被阻塞了,无法执行插入队列尾部的blk,造成死锁;

2. 执行dispatch_sync的线程和blk放入的线程不是同一线程时,会阻塞当前执行线程,直到在另个线程中执行blk完成,该函数返回,当前线程继续运行,不会造成死锁。

 

© 著作权归作者所有

Gerry1218

Gerry1218

粉丝 9
博文 81
码字总数 15130
作品 1
杭州
程序员
私信 提问
面试题库Demo_01

1.下面的输出结果是什么? - ()init { self= [super init]; if(self) { NSLog(@"%@", NSStringFromClass([self class])); NSLog(@"%@", NSStringFromClass([super class])); } return self;}......

sfandy
2016/04/07
45
0
Effective Objective-C Notes:GCD 实现同步锁

本文名为《GCD 实现同步锁》,内容不止于锁。文章试图通过 GCD 同步锁的问题,尽量往外延伸扩展,以讲解更多 GCD 同步机制的内容。 引语:线程安全问题 如果一段代码所在的进程中有多个线程在...

goodlook
2016/04/04
53
0
dispatch_sync和dispatch_async的区别

dispatchsync 线程同步、dispatchasync线程异步 //同步 这些代码输出的结果是 1 2 3 4 依次输出、无论你运行多少次都会是这一种结果 但是来看下面的异步呢? //并行队列、同步 输出的结果是 ...

久依
01/10
0
0
iOS GCD队列dispatch简单的使用

iOS从iOS 4引入了libdispatch来实现消息队列的编程 一、dispatch队列的生成可以有这几种方式 1. dispatchqueuet queue = dispatchqueuecreate("user.dispatch.mulitworker", DISPATCHQUEUESE......

IamOkay
2016/03/31
281
0
iOS多线程的初步研究(八)-- dispatch队列

GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包...

小春0618
2015/06/21
118
0

没有更多内容

加载失败,请刷新页面

加载更多

js判断数据类型的几种方法

1、typeof typeof只能判断区分基本类型,number、string、boolean、undefined和object,function; typeof 0; //number;typeof true; //boolean;typeof undefined; //undefined;typ......

Bing309
35分钟前
3
0
说一说你的对面向过程和面向对象的理解

软件开发思想,先有面向过程,后有面向对象 在大型软件系统中,面向过程的做法不足,从而推出了面向对象 都是解决实际问题的思维方式 两者相辅相成,宏观上面向对象把握复杂事物的关系;微观...

ConstXiong
39分钟前
5
0
Qt编写气体安全管理系统5-数据监控

一、前言 本项目对设备的监控有四种视图模式,可以任意切换,数据监控、地图监控、设备监控、曲线监控,其中数据监控是最常用的,所以在主界面导航中也排在第一位,综合观察分析了很多气体安...

飞扬青云
41分钟前
3
0
pip源安装TensorFlow阿里报错 '--trusted-host mirrors.aliyun.com'.

使用命令pip install -i http://mirrors.aliyun.com/pypi/simple/ tensorFlow 报错 '--trusted-host mirrors.aliyun.com'. 需要改成 pip install -i http://mirrors.aliyun.com/pypi/simple......

Mr_Tea伯奕
46分钟前
3
0
C# ICSharpCode.SharpZipLib 压缩、解压文件 附源码

http://www.icsharpcode.net/opensource/sharpziplib/ 有SharpZiplib的最新版本,本文使用的版本为0.86.0.518,支持Zip, GZip, BZip2 和Tar格式。我们需要dll 在官网上也有。 好了,深入的大...

_Somuns
47分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部