关于多线程中同步函数+主队列的问题

原创 2015年07月06日 23:35:26

在主线程中调用函数,同时同步函数的队列为主队列中是就会出现线程卡死显现,很多解释都是主线程等待主队列,主队列等待主线程,出现相互等待的现象才会导致线程卡死


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

  dispatch_sync(dispatch_get_main_queue(), ^{

       //

        NSLog(@"下载图片1 %@",[NSThreadcurrentThread]);


    });

}



那么同样的代码发生在异步函数就不会出现这样的情况


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

  dispatch_async(dispatch_get_main_queue(), ^{

        //

        NSLog(@"下载图片1 %@",[NSThread currentThread]);


    });

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

主队列中添加的同步操作永远不会被执行,会死锁原因

主队列在执行dispatch_sync,函数会把一个block加入到指定的队列,此函数要求执行完block才返回,函数要求此时去执行block内容,但是主队列此时还在卡在函数,函数线程还在,不能去执行...

关于GCD中同步函数+主队列产生死锁的一点理解

首先看个产生死锁的代码 -(void)sysncMain{ //获得主队列 dispatch_queue_t queue = dispatch_get_main_queue(); ...

多线程——静态同步函数的锁的相关问题

package com.qianfeng.demo01; /** * 关于静态同步函数使用的锁 * * 静态同步函数的锁是什么呢? * 静态随着类的加载而加载,而这时内存中存储的对象至少有一...

黑马程序员------多线程(No.1)(概述、线程的创建、安全问题、同步锁、同步函数)

概述   进程:是一个正在执行中的程序。每一个进程都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。 线程:就是进程中的一个独立的控制单元。线程在控制着进程的执行。 一个进程中至少有一个线程...

(49)静态同步函数的锁是Class对象,例子:懒汉式--在多线程中存在问题--同步解决

如果同步函数被静态修饰后,使用的锁是什么呢?

黑马程序员----多线程2(安全问题、同步代码块、同步函数、死锁)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-线程安全问题线程安全问题产生的原因需求:模拟4个线程同时卖100张票。 代码 class Ticket impl...

验证多线程中同步函数锁是this对象

/** * 验证同步函数的锁是this对象 */ class TestThreadLock { public static void main(String[] args) throws Int...

3-3-Java多线程-案例-银行存钱&同步函数

银行存钱案例 两个客户到一个银行去存钱,每个客户一次存100,存三次。 问题:改程序是否有安全问题,如果有写出分析过程并定义解决方案 代码示例-未修改前代码class Bank{ privat...

多线程——同步函数

/* 需求: 银行有一个金库。 有两个储户分别存300员,每次存100,存3次。 目的:该程序是否有安全问题,如果有,如何解决? 如何找问题: 1,明确哪些代码是多线程运行代码。 2,明确共享数...

黑马程序员——11,多线程,同步函数,死锁,一些零散的小知识点

黑马程序员——11,多线程,同步函数,死锁,一些零散的小知识点 //同步函数   class  A              &#...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)