Опишите что такое NSOperationQueue. Где и как это используется?
Уважаемые учащиеся ниже Вы сможете увидеть ответ, перед тем, как ответить, пожалуйста, постарайтесь написать для себя ответ на черновике, и только потом сравните наш ответ с Вашим:
Верно ли наше решение?
Ответ:
Класс NSOperationQueue регулирует порядок выполнения множества операций, которые, представлены объектами класса NSOpertion. Свойственно использовать очереди операций (operation queue) для исполнения каких-либо асинхронных операций в другом (не главном) потоке (background thread).
Другими словами, используя NSOperationQueue мы получаем возможность выполнять ту или иную задачу в новом потоке, т.е. запускать ее в фоне.
Пример использования:
def thread1
10.times { |i| NSLog("\t Thread1: #{i}") }
end
def thread2
20.times { |i| NSLog("\t\t Thread2: #{i}") }
end
def thread3
30.times { |i| NSLog("\t\t\t Thread3: #{i}") }
end
def viewDidLoad
queue = NSOperationQueue.new
queue.maxConcurrentOperationCount = 3
queue.name = "threads operation"
operation1 = NSInvocationOperation.alloc.initWithTarget(self, selector: :thread1, object:nil)
operation2 = NSInvocationOperation.alloc.initWithTarget(self, selector: :thread2, object:nil)
operation3 = NSInvocationOperation.alloc.initWithTarget(self, selector: :thread3, object:nil)
queue.addOperation(operation1)
queue.addOperation(operation2)
queue.addOperation(operation3)
end
viewDidLoad
sleep 10.0
Опишите что такое NSOperationQueue. Где и как это используется?
Уважаемые учащиеся ниже Вы сможете увидеть ответ, перед тем, как ответить, пожалуйста, постарайтесь написать для себя ответ на черновике, и только потом сравните наш ответ с Вашим:
Верно ли наше решение?
Ответ:
Класс NSOperationQueue регулирует порядок выполнения множества операций, которые, представлены объектами класса NSOpertion. Свойственно использовать очереди операций (operation queue) для исполнения каких-либо асинхронных операций в другом (не главном) потоке (background thread).
Другими словами, используя NSOperationQueue мы получаем возможность выполнять ту или иную задачу в новом потоке, т.е. запускать ее в фоне.
Пример использования:
def thread1
10.times { |i| NSLog("\t Thread1: #{i}") }
end
def thread2
20.times { |i| NSLog("\t\t Thread2: #{i}") }
end
def thread3
30.times { |i| NSLog("\t\t\t Thread3: #{i}") }
end
def viewDidLoad
queue = NSOperationQueue.new
queue.maxConcurrentOperationCount = 3
queue.name = "threads operation"
operation1 = NSInvocationOperation.alloc.initWithTarget(self, selector: :thread1, object:nil)
operation2 = NSInvocationOperation.alloc.initWithTarget(self, selector: :thread2, object:nil)
operation3 = NSInvocationOperation.alloc.initWithTarget(self, selector: :thread3, object:nil)
queue.addOperation(operation1)
queue.addOperation(operation2)
queue.addOperation(operation3)
end
viewDidLoad
sleep 10.0