`
stephen830
  • 浏览: 2998062 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

iphone进程执行队列 dispatch queue

 
阅读更多

iphone进程执行队列 dispatch queue

 

在iphone官方文档中对此说明如下:

 

 

A dispatch queue invokes blocks submitted to it serially in FIFO order. A serial queue invokes only one block at a time, but independent queues may each invoke their blocks concurrently with respect to each other.

The global concurrent queues invoke blocks in FIFO order but do not wait for their completion, allowing multiple blocks to be invoked concurrently.

The system manages a pool of threads that process dispatch queues and invoke blocks submitted to them. Conceptually, a dispatch queue may have its own thread of execution, and interaction between queues is highly asynchronous.

Dispatch queues are reference counted via calls to dispatch_retain and dispatch_release. Pending blocks submitted to a queue also hold a reference to the queue until they have finished. Once all references to a queue have been released, the queue will be deallocated by the system.

 

 

 

//定义dispatch_queue_t变量
	dispatch_queue_t aQueue,bQueue;
	//创建dispatch_queue_t对象
	aQueue=dispatch_queue_create("firstQueue", NULL);
	bQueue=dispatch_queue_create("sencondQueue",NULL);
	
	//异步调用aQueue
	dispatch_async(aQueue, ^{
		for (int i=0; i<30; i++) {
			NSLog(@"first aQueue run:%i",i);
			[NSThread sleepForTimeInterval:10];
		}
		
	});
	//异步调用bQueue
	dispatch_async(bQueue, ^{
		for (int i=0; i<30; i++) {
			NSLog(@"second aQueue run:%i",i);
			[NSThread sleepForTimeInterval:5];
		}
		
	});

 

 

 

 

分享到:
评论

相关推荐

    并发编程之Operation Queue和GCD

    GCD支持同步或异步任务处理,串行或并行的处理队列(Dispatch Queue),非系统调用的信号量机制,定时任务处理,进程、文件或网络的监听任务等。 Dispatch Queue是一个任务执行队列,可以让你异步或同步地执行多个...

    ios (线程 iphone 并发 异步 NSOperation)介绍

    - **概念**:`DispatchQueue`是一种轻量级的任务队列机制,用于管理和调度异步任务。 - **特点**: - 支持串行和并行两种模式。 - 通过`dispatch_async`和`dispatch_sync`等API来提交任务。 - 提供了强大的调度...

    iOS 的多核编程和内存管理

    GCD的核心概念是队列(queue),队列分为两种类型:串行队列(serial queue)和并行队列(concurrent queue)。串行队列中的任务会按照添加顺序依次执行;而并行队列则允许多个任务同时执行。 ```swift // 创建一个...

    iphone中线程的使用

    1. **Dispatch Queue**:分为串行队列(serial queue)和并行队列(concurrent queue)。串行队列的任务按顺序执行,而并行队列的任务可并发执行。 2. **Dispatch Group**:用于跟踪一组异步任务,当所有任务完成时...

    iPhone开发之多线程入门示例程序

    有主队列(Serial Queue)和并发队列(Concurrent Queue)两种类型,主队列用于在主线程上执行任务,而并发队列可以在多个线程上并发地执行任务。任务可以是同步的(dispatch_sync)或异步的(dispatch_async),...

    Iphone 序列化与反序列化,队列的实例

    4. **串行队列(Serial Dispatch Queues)**:一次只执行一个任务,确保任务的顺序执行。 在实验中,`NSArchiverTest`可能是一个演示如何使用`NSKeyedArchiver`和`NSKeyedUnarchiver`的代码示例。`NSKeyedArchiver`...

    iPhone 多线程 CoreData使用源代码

    DispatchQueue.global(qos: .background).async { // 在这里执行CoreData操作 } ``` 在多线程中使用CoreData时,必须注意线程安全。CoreData的上下文(ManagedObjectContext)是线程不安全的,意味着每个线程都...

    iphone多线程编程

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue, ^{ // 执行后台任务 }); ``` **3. NSOperation & NSOperationQueue** `NSOperation` 和 `...

    iphone 多线程

    在iOS开发中,多线程是一项至关重要的技术,它使得应用程序能够同时执行多个任务,提升用户体验,特别是对于iPhone这样的移动设备来说,优化性能和响应速度是开发者必须关注的重点。本篇将详细介绍iPhone开发中的多...

    Concurrent Programming in Mac OS X and iOS

    - 可以使用`dispatch_get_main_queue()`获取主队列,并通过`dispatch_async`将其调度到主线程上执行。 - **非UI相关任务**: - 非UI任务如网络请求、数据处理等可以放在后台队列中执行。 - **同步执行**:如果...

    WatchKit-Threading:一个非常简单的演示应用程序显示 WatchKit 中的线程工作

    dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(backgroundQueue, ^{ // 耗时操作 // ... // 当耗时操作完成,可以使用 dispatch_...

    iphone UITableView异步加载图片

    下载过程中,可以利用OperationQueue或Grand Central Dispatch(GCD)进行多线程处理。 4. **下载完成回调**:当图片下载完成,将其添加到ImageCache,并通知AsyncImageView更新显示。 5. **内存管理**:为了防止...

    iOS开发中常用的一些宏定义.zip

    这两个宏分别用于在主线程和全局队列中异步执行任务。 9. **内存管理宏**:ARC(Automatic Reference Counting)环境下,可以使用宏来更优雅地处理对象的生命周期,例如: ```c #define SAFE_RELEASE(obj) do { ...

    block块精解

    例如,使用GCD的`dispatch_async`可以将Block放入队列并在后台执行: ```objc dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 异步执行的任务 }); ``` ### 9. Block与...

    利用iphone的多线程实现“售票系统”

    在iOS开发中,Objective-C和Swift语言都有各自的多线程编程模型,其中Objective-C通常使用 `NSThread` 和 `GCD` 来进行多线程编程,而Swift则使用 `DispatchQueue`、`Operation` 和 `OperationQueue`。苹果在WWDC ...

Global site tag (gtag.js) - Google Analytics