func loadWithUrlStr(urlStr:String){
let queue = OperationQueue()
print("111")
let blockQueue1 = BlockOperation {
for _ in 1 ..< 500000 {
}
print("blockQueue1%@",Thread.current)
}
let blockQueue2 = BlockOperation {
for _ in 1 ..< 500000 {
}
print("blockQueue2%@",Thread.current)
}
let blockQueue3 = BlockOperation {
for _ in 1 ..< 500000 {
}
print("blockQueue3%@",Thread.current)
}
let blockQueue4 = BlockOperation {
for _ in 1 ..< 500000 {
}
print("blockQueue4%@",Thread.current)
}
let blockQueue5 = BlockOperation {
for _ in 1 ..< 500000 {
}
print("blockQueue5%@",Thread.current)
}
let blockQueue6 = BlockOperation {
for _ in 1 ..< 500000 {
}
print("blockQueue6%@",Thread.current)
}
let blockQueue7 = BlockOperation {
for _ in 1 ..< 500000 {
}
print("blockQueue7%@",Thread.current)
}
let blockQueue8 = BlockOperation {
for _ in 1 ..< 500000 {
}
print("blockQueue8%@",Thread.current)
}
print("2222")
blockQueue7.addDependency(blockQueue5)
blockQueue5.addDependency(blockQueue2)
blockQueue2.queuePriority = .high
blockQueue5.queuePriority = .high
blockQueue7.queuePriority = .veryHigh
queue.addOperations([blockQueue1,blockQueue2,blockQueue3,blockQueue4,blockQueue5,blockQueue6,blockQueue7,blockQueue8], waitUntilFinished: true)
// 注意一点,添加了依赖关系的会被放到后面执行。
// 没有依赖和优先级:执行的顺序不确定
// 只有依赖:执行的顺序不确定,有依赖的那个最后执行,只能确定依赖的先后顺序,不能确定其他的顺序
// 只有优先级:执行优先级高的,其他顺序不确定
// 有依赖和优先级:先执行依赖,然后执行优先级
}
网友评论