English 中文(简体)
GCD 全球共同点并非总是并行的(iOS装置)?
原标题:GCD global concurrent queue not always concurrent(iOS device)?

关于OS装置,我最近发现这是一种奇怪的行为。

法典

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSLog(@"1111");
    });
    while (1) {
        sleep(1);
    }
});

法典:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSLog(@"1111");
    });
    while (1) {
        sleep(0.5);
    }
});

《刑法》1 和《刑法》2 唯一的区别是,《刑法》1 睡着每 lo1秒钟,《刑法》2 睡觉0.5。

如果你使用这两种单质的“OS”仪器,则《法典》1将打印“@1111”,但《法典》2胜诉。

我不问,为什么认为全球问题同时存在。 无论其他各组成部分正在做什么,它都应永远印出数字。 如果由于这种单一核心装置的局限性,那么为什么睡觉(0.5)和睡觉(1)会带来变化?

我真的想知道这样做的原因。

EDIT I found use sleep(0.5) is my stupid mistake. sleep() function take an unsigned int parameter.So sleep(0.5) is equal to sleep(0). But do sleep(0) will block the whole concurrent queue?

最佳回答

原因是,你的第二个睡觉基本上是一个睡觉(0),这意味着你现在重新bu住了GCD给你的透镜,如果你给我机会做任何其他事情,那很可能是像第一个例子那样的,那就把nes的警钟 executed起来了。 在第二次睡觉中,德国儿童发展组织发现,read子被阻断,并创造了新的一片新东西,用于满足未决的定点要求。 在第二个例子中,你基本上 co断了被遗忘的工作——全球疾病登记中心没有足够明了,无法知道一只read子被锁住进了无限的 lo,你又不给这个系统做足够的工作,以证明(在全球疾病登记中心眼中)建立另一个read子是正当的。 我认为,你实际上在德国马克的低地工作逻辑中发现了一种ug。

问题回答

Just checked out, 1st and 2nd snippets print “......1111“....... Note, nesting of dispatch_async you use won t give any profit, because you set the same priorities (DISPATCH_QUEUE_PRIORITY_DEFAULT) all the tasks “......NSLog(@“......1111“......);“......

......

while (1) {
        sleep(0.5);

“......

将加入同一目标。 因此,我可以假定,在第一个与《家庭环境与安全法》合并的案例中,首先将执行,而且由于这项工作将永远不会完成,因此永远不会要求在座的下一个任务。

您可以尝试利用不同的优先事项进行询问。





相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签