You are on page 1of 3

SPEC INDIA

DIFFERENCE BETWEEN NSTHREAD AND


NSOPERATION

Difference Between NSThread And


NSOperation
There are many reasons for using NSThread in your application based on the architecture and complexity of the
application. The main purpose to use threads in application, is concurrency and asynchronously working for process and
send notification message to main thread. By this way, developer doesnt needs to block main thread while applications
are executing different tasks.
NSOperation is used for the same concurrency purpose as same as NSThread. NSOperation is a best way to wrap process
with threads while NSThread is just wrapper to pthreads.
Professional iOS developer can use either NSOperation or NSTread to achieve asynchronouse behavior in application.
App performance doesnt really rely on the way of using threads. However, it is much easier to implement and user
NSOperation instead of pthreads.

How NSOperation and NSThread Works:


NSThread:
1. iOS developers have to write code for the work/process he want to perform along with for the creation and
management of the threads themselves.
2. iOS developers have to be careful about a plan of action for using threads.
3. iOS developer have to manage possible problems like reuseability of thread, lockings etc. by them self.
4. Thread will consume more memory too.
NSOperation:
1. The NSOperation class is an abstract class which encapsulates the code and data associated with a single task.
2. Developer needs to use subclass or one of the system-defined subclasses of NSOperation to perform the task.
3. Add operations into NSOperationQueue to execute them.
4. The NSOperationQueue creates a new thread for each operation and runs them in the order they are added.
5. Operation queues handle all of the thread management, ensuring that operations are executed as quickly and
efficiently as possible.
6. An operation queue executes operations either directly by running them on secondary threads or indirectly
using GCD (Grand Central Dispatch).
7. It takes care of all of the memory management and greatly simplifies the process.
8. If you dont want to use an operation queue, you can also execute an operation by calling its start method. It
may make your code too complex.

How To Use NSThread And NSOperation:


NSThread:
1. Though Operation queues is the preferred way to perform tasks concurrently, depending on application there
may still be times when you need to create custom threads.
2. Threads are still a good way to implement code that must run in real time.
3. Use threads for specific tasks that cannot be implemented in any other way.

4. If you need more predictable behavior from code running in the background, threads may still offer a better
alternative.

NSOperation:
1. Use NSOperation when you have more complex operations you want to run concurrently.
2. NSOperation allows for subclassing, dependencies, priorities, cancellation and a supports a number of other
higher-level features.
3. NSOperation actually uses GCD under the hood so it is as multi-core, multi-thread capable as GCD.
Now you should aware about advantages and disadvantages of NSTread and NSOperation. You can use either of them as
per needs of your application.

You might also like