小编Chr*_*rth的帖子

并行减少算法实现

我一直在研究使用块在Objective-C中使用reduce [inject,fold,无论你想要什么称呼]函数的实现,并且想知道是否存在任何并行化计算的技术,其中所应用的函数是关联的(例如,a的总和)整数集合)?

也就是说,可以在NSArray上并行化或改进这样的东西:

- (id)reduceWithBlock:(id (^)(id memo, id obj))block andAccumulator:(id)accumulator
{
  id acc = [[accumulator copy] autorelease];

  for (id obj in self) {
    acc = block(acc, obj);
  }
  return acc;
}
Run Code Online (Sandbox Code Playgroud)

使用大中央调度?

编辑:我已经进行了第二次尝试,将数组划分为更小的块并在单独的调度队列中减少它们,但在我的测试中没有明显的性能提升:( 这里的要点)

parallel-processing multithreading objective-c grand-central-dispatch objective-c-blocks

4
推荐指数
1
解决办法
2455
查看次数

iOS - 当线程(使用GCD)结束它的工作时如何通知

我开始使用GCD了,我需要知道某个线程何时结束了它的工作.

我的代码:

dispatch_queue_t registerDeviceQueue = dispatch_queue_create("RegisterDevice", NULL);
dispatch_async(registerDeviceQueue, ^{
    [self registerDevice];

    dispatch_async(dispatch_get_main_queue(), ^{
        [aiRegisterDevice stopAnimating];
    });
});
dispatch_release(registerDeviceQueue);
Run Code Online (Sandbox Code Playgroud)

我需要知道这个步骤何时结束,以便UIActivityView可以停止.它现在的方式,它在线程结束前停止.

谢谢,

RL

multithreading objective-c nsthread grand-central-dispatch

1
推荐指数
1
解决办法
2348
查看次数

NIO 选择器默认使用事件通知吗?

我发现这篇文章说 OpenJDK 在 Linux 上使用 epoll,但是有人知道 Selector 实现是否使用 kqueue、dev/poll 等而不是传统的轮询(如果可用)?

java events nio kqueue

1
推荐指数
1
解决办法
867
查看次数