求swift多线程的资料,越详细越好!感激不尽!
在网上找的资料不懂的地方太多了!比如下面这段代码:
运行结果如下:
2016-04-28 03:40:16.210 OperatingSystem[8829:1072876] 3
2016-04-28 03:40:16.210 OperatingSystem[8829:1072853] <NSOperationQueue: 0x100609ac0>{name = 'NSOperationQueue 0x100609ac0'}
2016-04-28 03:40:16.210 OperatingSystem[8829:1072875] 2
2016-04-28 03:40:16.210 OperatingSystem[8829:1072870] <NSThread: 0x10060c320>{number = 2, name = (null)}
0~4里面的数字总是概率性地输出其中几个,而并不是无序地全部输出,这是为什么?还有为什么一定要添加最后一句nslog才会有结果输出?太奇怪了!请大神们帮忙讲解,如果有swift多线程资料的话给我一下吧,网上找过,都不是很明白
在网上找的资料不懂的地方太多了!比如下面这段代码:
import Foundation
//1.创建其他队列
let queue = NSOperationQueue()
//2.创建NSBlockOperation对象
let operation = NSBlockOperation { () -> Void in
NSLog("%@", NSThread.currentThread())
}
//3.添加多个Block
for i in 0..<5 {
operation.addExecutionBlock { () -> Void in
NSLog("%d", i)
}
}
//4.队列添加任务
queue.addOperation(operation)
NSLog("%@", queue)//一定要在这里加入这句话才能运行出结果,不然一点都不显示结果
运行结果如下:
2016-04-28 03:40:16.210 OperatingSystem[8829:1072876] 3
2016-04-28 03:40:16.210 OperatingSystem[8829:1072853] <NSOperationQueue: 0x100609ac0>{name = 'NSOperationQueue 0x100609ac0'}
2016-04-28 03:40:16.210 OperatingSystem[8829:1072875] 2
2016-04-28 03:40:16.210 OperatingSystem[8829:1072870] <NSThread: 0x10060c320>{number = 2, name = (null)}
0~4里面的数字总是概率性地输出其中几个,而并不是无序地全部输出,这是为什么?还有为什么一定要添加最后一句nslog才会有结果输出?太奇怪了!请大神们帮忙讲解,如果有swift多线程资料的话给我一下吧,网上找过,都不是很明白