user428149
user428149

Reputation: 99

How does multithreading work in Objective-C on the iPhone?

I'm confused about the concept of "threads" in iPhone development:

Upvotes: 3

Views: 11777

Answers (4)

Thorsten Niehues
Thorsten Niehues

Reputation: 14432

The recommended way to implement concurrency is using queues.

For those who just want to execute a method / block in a separate thread - use this code:

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
   [self longMehtod];
});

for further information read the Concurrency Programming Guide from Apple

Upvotes: 0

Envil
Envil

Reputation: 2727

Recently, Apple suggests that programmers should move away from thread and use an alternative solution with more advantages, better performances and much more easier to implement; it's Concurrency Programming:
http://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008091

Upvotes: 0

Garnik
Garnik

Reputation: 423

More simple...If you want to run some methods(processes) parallely you can use threads...One thread is doing one stuff while another doing other stuff... So u can use threads if you need something to be done when another thing is doing... Example: Thread 1: sending request to server Thread 2: preparing information(image,text etc) to be sent. So in general this is the purpose of threads

Upvotes: 0

Thomas Clayson
Thomas Clayson

Reputation: 29925

You need multi-threading in objective c because sometimes you need functions/code to run "in the background" (read: on another thread). For instance (but not explicitly) you might need to download large amounts of data off the internet (a picture, or a video).

In this case running the download on the 'main' thread will cause the iphone to freeze before the download is complete. So you use multi-threading to download the data AND let the iphone work all at the same time.

There are lots of ways to do multithreading in objective-c. To be honest you need to look it up yourself, we're not here to just spoonfeed you.

Things to look up are: NSURLConnection and the method [self performSelector:onThread:...]

Upvotes: 6

Related Questions