GCD
文章平均质量分 68
chuanyituoku
这个作者很懒,什么都没留下…
展开
-
Grand Central Dispatch (GCD)
Grand Central DispatchGrand Central Dispatch (GCD) is a set of language features, C-based APIs, and system enhancements that support the use of dispatch queues for executing tasks. GCD dispatch原创 2013-11-28 15:48:39 · 771 阅读 · 0 评论 -
Monitoring the death of a parent process (via Dispatch Sources)
void MonitorParentProcess() { pid_t parentPID = getppid(); dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t source = dispatc原创 2014-08-29 17:20:45 · 653 阅读 · 0 评论 -
Adding a Single Task to a Queue
The following example shows how to use the block-based variants for dispatching tasks asynchronously and synchronously: dispatch_queue_t myCustomQueue;myCustomQueue = dispatch_queue_create("com.exa原创 2014-08-29 13:59:02 · 441 阅读 · 0 评论 -
Using Dispatch Semaphores to Regulate the Use of Finite Resources
The semantics for using a dispatch semaphore are as follows:When you create the semaphore (using thedispatch_semaphore_createfunction), you can specifya positive integer indicating the numbe原创 2014-08-29 14:42:29 · 664 阅读 · 0 评论 -
Installing a block to monitor signals (via Dispatch Sources)
void InstallSignalHandler() { // Make sure the signal does not terminate the application. signal(SIGHUP, SIG_IGN); dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_原创 2014-08-29 17:09:13 · 1060 阅读 · 0 评论 -
Dispatch Sources
About Dispatch SourcesA dispatch sourceis a fundamental data type that coordinates the processing of specific low-level systemevents. Grand Central Dispatch supports the following types of dispatc原创 2014-08-29 15:21:49 · 578 阅读 · 0 评论 -
Creating a timer dispatch source
dispatch_source_t CreateDispatchTimer(uint64_t interval, uint64_t leeway, dispatch_queue_t queue, dispatch_block_t block) { dispatch_source_t tim原创 2014-08-29 16:17:45 · 1278 阅读 · 0 评论 -
Storing Custom Context Information with a Queue
Storing Custom Context Information with a QueueAll dispatch objects (including dispatch queues) allow you to associate custom context data with the object.To set and get this data on a given object,原创 2014-08-29 13:52:19 · 571 阅读 · 0 评论 -
Waiting on Groups of Queued Tasks (dispatch_group_async)
// Waiting on asynchronous tasks dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispatch_group_t group = dispatch_group_create();// Add a task to the grou原创 2014-08-29 14:47:45 · 838 阅读 · 0 评论 -
Watching for filename changes (via Dispatch Sources)
an example that monitors a file for name changes and performs some custom behavior whenit does. (You would provide the actual behavior in place of theMyUpdateFileNamefunction called in theexample.原创 2014-08-29 16:57:12 · 724 阅读 · 0 评论 -
Reading /(Writing) Data from / (to) a Descriptor (Dispatch Sources)
dispatch_source_t ProcessContentsOfFile(const char* filename) { // Prepare the file for reading. int fd = open(filename, O_RDONLY); if (fd == -1) return NULL; fcntl(fd, F原创 2014-08-29 16:47:58 · 578 阅读 · 0 评论 -
Performing Loop Iterations Concurrently
Original:for (i = 0; i < count; i++) { printf("%u\n",i);}Replacement:dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispatch_apply(count, queue,原创 2014-08-29 14:37:38 · 493 阅读 · 0 评论 -
Performing a Completion Block When a Task Is Done (!!!)
Executing a completion callback after a task原创 2014-08-29 14:03:15 · 606 阅读 · 0 评论 -
Choosing the Right API for Concurrent Programming
Choosing the Right API for Concurrent ProgrammingThis chapter has covered a variety of approaches for concurrent programming, so you have several options to choose from. To recap, the following ar原创 2013-11-28 16:00:30 · 677 阅读 · 0 评论 -
Effective Objective-C 2.0: Item 41: Prefer Dispatch Queues to Locks for Synchronization
Item 41: Prefer Dispatch Queues to Locks for SynchronizationSometimes in Objective-C, you will come across code that you’re having trouble with because it’s being accessed from multiple threads. T原创 2013-12-12 21:14:16 · 5224 阅读 · 0 评论 -
Effective Objective-C 2.0: Item 42: Prefer GCD to performSelector and Friends
Item 42: Prefer GCD to performSelector and FriendsThanks to the extremely dynamic nature of Objective-C (see Item 11), a few methods defined on NSObject allow you to call any method you wish. Th原创 2013-12-12 21:32:57 · 2008 阅读 · 0 评论 -
Effective Objective-C 2.0: Item 43: Know When to Use GCD and When to Use Operation Queues
Item 43: Know When to Use GCD and When to Use Operation QueuesGCD is a fantastic technology, but it is sometimes better to use other tools that come as part of the standard system libraries. Knowi原创 2013-12-12 21:54:01 · 1292 阅读 · 0 评论 -
Effective Objective-C 2.0: Item 44: Use Dispatch Groups to Take Advantage of Platform Scaling
Item 44: Use Dispatch Groups to Take Advantage of Platform ScalingDispatch groups are a GCD feature that allows you to easily group tasks. You can then wait on that set of tasks to finish or be no原创 2013-12-14 13:40:24 · 3296 阅读 · 0 评论 -
Effective Objective-C 2.0: Item 45: Use dispatch_once for Thread-Safe Single-Time Code Execution
Item 45: Use dispatch_once for Thread-Safe Single-Time Code ExecutionThe Singleton design pattern—no stranger in the Objective-C world—is usually achieved through a class method called something l原创 2013-12-14 14:29:26 · 1365 阅读 · 0 评论 -
GCD实例1
2014/1/3 dispatch_group_t group =dispatch_group_create(); dispatch_queue_t queue =dispatch_queue_create("com.ycz.hc",DISPATCH_QUEUE_PRIORITY_DEFAULT); dispatch_group_async(g原创 2014-01-03 14:39:51 · 723 阅读 · 0 评论 -
GCD: Obtaining Dispatch Queues
Obtaining Dispatch QueuesThere are two ways to do that, with dispatch_queue_create and main dispatch queue / global dispatch queue. The following sections discuss both of these.dispatch_queu原创 2013-12-21 12:54:08 · 1228 阅读 · 0 评论 -
APIs to control the tasks in the dispatch queues.
Controlling Dispatch QueuesGCD also provides many useful APIs to control the tasks in the dispatch queues. Let’s see the APIs one by one to explore how GCD is so powerful.dispatch_set_target_que原创 2013-12-21 22:38:17 · 1793 阅读 · 0 评论 -
Getting data from a dispatch source
FunctionDescriptiondispatch_source_-get_handleThis function returns the underlying system data type that the dispatch sourcemanages.For a descriptor dis原创 2014-08-29 16:18:42 · 514 阅读 · 0 评论