<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nsoperation on adolsai's echo</title><link>https://adolsai.com/tag/nsoperation/</link><description>Recent content in nsoperation on adolsai's echo</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 06 Aug 2015 11:04:39 +0800</lastBuildDate><atom:link href="https://adolsai.com/tag/nsoperation/index.xml" rel="self" type="application/rss+xml"/><item><title>Concurrency Programming Guide 3 Operation Queues</title><link>https://adolsai.com/archives/Concurrency-Programming-Guide-3-Operation-Queues.html</link><pubDate>Tue, 28 Jul 2015 19:55:00 +0800</pubDate><guid>https://adolsai.com/archives/Concurrency-Programming-Guide-3-Operation-Queues.html</guid><description>&lt;h1 id="operation-queues"&gt;Operation Queues&lt;/h1&gt;&#10;&lt;h2 id="与gcd对比"&gt;与&lt;strong&gt;GCD&lt;/strong&gt;对比&lt;/h2&gt;&#10;&lt;ol start="0"&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;稍微慢一点点，因为是&lt;strong&gt;NSOperation&lt;/strong&gt;和&lt;strong&gt;NSOperationQueue&lt;/strong&gt;基于&lt;strong&gt;GCD&lt;/strong&gt;的(在Mac OS X v10.6 &amp;amp; iOS 4之后&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;);&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Operation Queue可以实现operation的dependency功能，使之在制定的operation完成之后再运行。而且指定线程可以在不同的operation queue里跑;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;可以重用、取消、暂停operation;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;可以使用&lt;strong&gt;KVO&lt;/strong&gt;，方便监控operation的运行状态;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Operation既可以直接调用&lt;code&gt;start&lt;/code&gt;方法独立运行也可以add到operation queue里面跑;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;可以使用&lt;code&gt;setCompletionBlock:&lt;/code&gt;设置一个operation执行完之后的动作;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;可以定义operation优先级别&lt;code&gt;setQueuePriority:&lt;/code&gt;;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;</description></item></channel></rss>