2个对象使用相同的名称创建串行队列时是否共享相同的队列

阿夫纳·巴尔(Avner Barr)

不确定行为,因为我怀疑自己陷入僵局,

我有一个包含多个对象的类-每个对象创建一个具有相同名称的队列。我不确定GCD是否在对象之间重用相同的队列,或者它们只是共享相同的名称。

例如

@interface MyClass

-(void)doSomeWork
@property (nonatomic,strong) dispatch_queue_t myQueue;

@end

@implementation MyClass

-(id)init
{
  self = [super init];
  self.myQueue = dispatch_queue_create("MyQueue",DISPATCH_QUEUE_SERIAL);
  return self;
}

-(void)doSomeWork
{
  dispatch_async(self.myQueue,^{
    // some long running work
  });
}

@end


@interface SomeClassWhichCreatesALotOfObjects

@end


@implementation SomeClassWhichCreatesALotOfObjects

-(void)someMethod
{
  for(int i = 0; i < 10000; i++)
  {
    MyClass *object = [MyClass new];
    [object doSomeWork]; // are these running in serial to each other or are each offset to the queue their object has created? Can't understand from the debugger
  }
}
@end
盖·古格斯

如Apple的文档所述,标签为:

附加到队列的字符串标签,以在调试工具(如Instruments ...)中对其进行唯一标识

它仅用作提示,仅此而已。

编辑

这是您想要使用共享队列的代码。

+ (dispatch_queue_t)sharedQueue
{
    static dispatch_queue_t sharedQueue;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedQueue = dispatch_queue_create("MyQueue", NULL);
    });
    return sharedQueue;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果在GCD中为队列创建相同的名称,是否是相同的队列?

来自分类Dev

是否可以在两个线程之间共享相同的消息队列?

来自分类Dev

如何使用GCD创建Singleton串行队列?

来自分类Dev

是否可以在同一解决方案下创建两个基于服务总线队列而两个队列都不相同的Azure函数?

来自分类Dev

是否可以在同一解决方案下创建两个基于服务总线队列而两个队列都不相同的Azure函数?

来自分类Dev

2 条骆驼路线消耗相同的队列

来自分类Dev

是否可以在多个ViewController中快速创建串行队列

来自分类Dev

使用类创建的两个不同的对象共享相同的内存

来自分类Dev

创建指向对象的指针队列时出错

来自分类Dev

使用Parse时,似乎未按顺序执行GCD串行队列

来自分类Dev

servlet是否共享相同的servletoutputstream对象?

来自分类Dev

串行队列是否比同步块更快?

来自分类Dev

当我需要使用两个堆栈来形成队列时,如何检查队列是否为空?

来自分类Dev

是否可以在C ++中创建对象数组队列?

来自分类Dev

当多个Rust源文件共享相同的名称时,是否可以设置LLDB断点?

来自分类Dev

使用2个堆栈实现队列

来自分类Dev

使用2个队列实现堆栈

来自分类Dev

是否可以接受创建具有相同值的多个对象时,重用一个建设者的实例吗?

来自分类Dev

使用cloudFormation创建具有特定名称的新队列

来自分类Dev

RabbitMQ多个使用者订阅相同的队列并获得相同的消息

来自分类Dev

加载具有相同符号的两个共享库时是否存在符号冲突

来自分类Dev

boost消息队列创建的共享内存太小?

来自分类Dev

线程是否在不同的调度队列之间共享?

来自分类Dev

是否有任何共享调度队列的理由?

来自分类Dev

共享工作是否在 WebForms .net 的队列中?

来自分类Dev

使用相同凭据的两个独立连接是否共享一个线程?

来自分类Dev

使用#create_list的Factory_girl,在所有创建的对象之间共享相同的关联

来自分类Dev

GAC中有多个应用程序使用的库,它是否共享相同的对象?

来自分类Dev

使用相同的对象名称通过for循环在Java中创建多个对象,以了解finalize方法

Related 相关文章

  1. 1

    如果在GCD中为队列创建相同的名称,是否是相同的队列?

  2. 2

    是否可以在两个线程之间共享相同的消息队列?

  3. 3

    如何使用GCD创建Singleton串行队列?

  4. 4

    是否可以在同一解决方案下创建两个基于服务总线队列而两个队列都不相同的Azure函数?

  5. 5

    是否可以在同一解决方案下创建两个基于服务总线队列而两个队列都不相同的Azure函数?

  6. 6

    2 条骆驼路线消耗相同的队列

  7. 7

    是否可以在多个ViewController中快速创建串行队列

  8. 8

    使用类创建的两个不同的对象共享相同的内存

  9. 9

    创建指向对象的指针队列时出错

  10. 10

    使用Parse时,似乎未按顺序执行GCD串行队列

  11. 11

    servlet是否共享相同的servletoutputstream对象?

  12. 12

    串行队列是否比同步块更快?

  13. 13

    当我需要使用两个堆栈来形成队列时,如何检查队列是否为空?

  14. 14

    是否可以在C ++中创建对象数组队列?

  15. 15

    当多个Rust源文件共享相同的名称时,是否可以设置LLDB断点?

  16. 16

    使用2个堆栈实现队列

  17. 17

    使用2个队列实现堆栈

  18. 18

    是否可以接受创建具有相同值的多个对象时,重用一个建设者的实例吗?

  19. 19

    使用cloudFormation创建具有特定名称的新队列

  20. 20

    RabbitMQ多个使用者订阅相同的队列并获得相同的消息

  21. 21

    加载具有相同符号的两个共享库时是否存在符号冲突

  22. 22

    boost消息队列创建的共享内存太小?

  23. 23

    线程是否在不同的调度队列之间共享?

  24. 24

    是否有任何共享调度队列的理由?

  25. 25

    共享工作是否在 WebForms .net 的队列中?

  26. 26

    使用相同凭据的两个独立连接是否共享一个线程?

  27. 27

    使用#create_list的Factory_girl,在所有创建的对象之间共享相同的关联

  28. 28

    GAC中有多个应用程序使用的库,它是否共享相同的对象?

  29. 29

    使用相同的对象名称通过for循环在Java中创建多个对象,以了解finalize方法

热门标签

归档