b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

iOS中线程死锁的详细示例

电脑杂谈  发布时间:2020-04-16 17:13:25  来源:网络整理

解决线程死锁_线程 死锁_多线程死锁的例子

编辑陶韬读书(795)

什么是线程死锁

是指由于执行过程中的资源竞争而导致两个或多个线程互相等待的现象. 没有外力,他们将无法前进.

线程死锁如何发生

死锁情况通常是由两个互相等待的对象的锁引起的.

发生死锁的条件

1. 互斥条件: 所谓互斥是指进程在一定时间内垄断资源.

2. 请求和保留条件: 当进程由于对资源的请求而被阻塞时,它将保留获取的资源.

3. 不剥夺条件: 该进程已获得资源,不能在使用结束前被强行剥夺.

4. 循环等待条件: 多个过程之间形成一个循环等待资源关系的过程.

线程 死锁_多线程死锁的例子_解决线程死锁

死锁通常是一个锁定资源A并想要锁定资源B的线程. 在另一个线程中,它锁定资源B并想要锁定资源A以完成其自身的操作,两个线程他们都希望获得彼此的资源,但不愿意释放自己的资源,从而导致两个线程互相等待,导致无法执行的情况.

线程死锁的原因: 在串行队列任务中,向该队列添加同步任务.

典型示例:

让我们分析一下:

主队列main_queue是一个串行队列. 串行队列的特征在于,队列中的所有任务必须按顺序执行. 换句话说,必须按照将它们添加到队列中的顺序执行它们.

让我们看看另一张照片:

我们在代码中使用dispatch_sync()函数将同步任务添加到主队列:

多线程死锁的例子_解决线程死锁_线程 死锁

- (void)viewDidLoad {
 [super viewDidLoad];
 
 dispatch_sync(dispatch_get_main_queue(), ^{
  NSLog(@"");
 });
}

也就是说,稍后添加的同步任务5在viewDidLoad任务2之后多线程死锁的例子,并且仅在等待任务2完成执行任务5之后,这就是串行队列的特征. 但是,任务5是同步任务. 在执行其他任务之前,您必须等待任务5完成,从而导致对方陷入僵局.

再看一个例子

我们知道GCD分为同步任务和异步任务. 第一个示例是主线程的主队列,它等效于同步任务. 并且此示例证明,即使在异步任务中,只要任务队列是串行队列,在串行队列的任务中向队列添加同步任务也会导致死锁. 关键不是同步或异步,而是串行队列.

摘要

dispatch_sync()函数将阻塞线程. 当前队列是串行队列,并且必须按顺序执行任务. 将同步任务B添加到串行队列的任务A中的此队列等效于说该串行队列还有另一个任务B. 如果任务B要执行,则必须等待任务A完成,但任务B是同步任务. 在执行其他任务之前,您必须等待任务B完成,因此任务AB等待彼此,从而导致死锁.

好的,以上是本文的全部内容多线程死锁的例子,希望本文的内容对大家的学习或工作具有一定的参考价值. 如有任何疑问,可以留言交流,谢谢您对CAD House的支持.

多线程死锁的例子_解决线程死锁_线程 死锁

iOS中NSNumberFormatter的介绍与用法

iOS使用WebView生成长截图的第3种解决方案

免费下载手册标准

免费下载机械设计,工艺,标准等手册.

下载机械制图软件

免费下载机械制图软件大全.

多线程死锁的例子_解决线程死锁_线程 死锁

3D设计软件下载

免费下载机械3D软件,免费下载.

AutoDESK系列下载

免费下载机械Autodesk软件.

CAD安装教程文章

有关CAD软件安装的详细图形教程,使新手可以快速入门.

3D(142)AutoCAD(168)CAD(678)CAD教程(145)solidworks(87)UG(77)3D(175)下载(238)中文(143)免费下载(81)工程图(128)参数(235)命令(347)命令集(77)层(121)图形教程(96)绘图(229)块(224)字体(118)安装(273)安装教程(76)实例(103)对象(204)尺寸(292)工程图(133)应用(300)打印(140)教程(408)数值(95)曲线(129)机械设计(104)标准(207)标记(220)套准机(84)功能(116)破解(131)破解版(108)练习题(108)组装(140)视图(130)视频教程(89)计算(268)设置(451)轴(198)钢(91)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-177818-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...