`
sogotobj
  • 浏览: 662053 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用NSOperationQueue起线程

 
阅读更多

只有代码,解释以后加上:

#import <UIKit/UIKit.h>

@interface tOQViewController : UIViewController {
NSOperationQueue *myOQ;
}
-(void)doSomething;
@end

实现文件如下:

#import "tOQViewController.h"

@implementation tOQViewController
-(void)doSomething
{
NSLog(@"in thread");
}
- (void)dealloc
{
[super dealloc];
}

- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
myOQ = [[NSOperationQueue alloc] init];
[myOQ setMaxConcurrentOperationCount:1];
NSInvocationOperation *op = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(doSomething) object:nil];
[myOQ addOperation:op];
[op release];
}


- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

分享到:
评论

相关推荐

    多线程GCD,NSThread,NSOperationQueue,详细解释Demo

    在子线程中刷新UI,通常需要回到主线程执行,无论使用GCD、NSThread还是NSOperationQueue,都需要确保UI更新在主线程进行,以免出现界面卡顿或数据不一致的问题。例如,可以使用`DispatchQueue.main.async`、`-...

    NSOperation_NSOperationQueue_Demo

    NSOperation和NSOperationQueue是Apple在iOS和macOS开发中提供的多线程处理框架,用于高效管理和调度异步任务。这两个类是Foundation框架的一部分,旨在简化并发编程,提高应用程序的性能和响应性。 **NSOperation*...

    ios多线程开发的常用四种方式和基本使用

    本文将深入探讨四种常用的iOS多线程开发方式:pthread、NSThread、NSOperation及NSOperationQueue,以及Grand Central Dispatch(GCD)。 首先,让我们了解下pthread。pthread是POSIX线程库,它在iOS中被用于跨平台...

    iOS两个线程间嵌套发送同步消息的demo

    在iOS中,我们可以使用GCD(Grand Central Dispatch)或者NSOperationQueue来实现线程间的同步消息传递。GCD是Apple提供的一种多任务调度框架,它简化了线程管理,同时提供了队列来处理同步和异步任务。 1. GCD同步...

    iOS 多线程运用

    2. NSThread:轻量级线程类,允许开发者手动创建和管理线程,但使用相对复杂。 3. NSOperationQueue:基于GCD的高级抽象,提供了任务依赖、优先级等功能,更易于使用和管理。 4. NSTimer:通常在RunLoop中运行,不...

    IOS nsthread开辟一个分线程

    它允许开发者直接操作线程对象,包括线程的启动、挂起、恢复和终止。 二、创建和使用`NSThread` 创建一个`NSThread`通常涉及以下步骤: 1. 定义线程执行的代码:你需要创建一个实现了`NSThread`协议的方法,这个...

    多线程.rar

    本文将深入探讨在iPhone开发中使用Object-C实现多线程的相关知识点。 一、多线程基础 1. 主线程:主线程是应用的入口,负责处理UI更新和用户交互。为了保证界面的流畅,所有的UI操作应该在主线程上进行。 2. 工作...

    iOS多线程Demo

    总之,“iOS多线程Demo”是一个很好的学习资源,它涵盖了iOS多线程开发的基础和实践,包括NSOperationQueue、GCD和NSThread的使用,以及多线程下的UI更新和线程安全。通过这个Demo,开发者可以更深入地理解多线程...

    理解iOS多线程应用的开发以及线程的创建方法

    除了`NSThread`,还可以使用GCD(Grand Central Dispatch)或NSOperationQueue来管理线程。GCD是Apple提供的异步编程框架,它基于C语言,但提供了Objective-C接口。通过GCD,可以方便地创建并行任务,如: ```objc ...

    iOS-常驻线程之线程循环调用(两个线程循环交替调用)

    因此,理解和正确使用常驻线程是iOS开发者必备的技能之一。 本话题主要探讨如何实现两个线程循环交替调用的机制,这通常是为了平衡负载或者实现特定的并发模式。例如,一个线程负责下载数据,另一个线程负责处理...

    ios多线程资料01

    3. **NSThread**:允许直接创建和管理线程,但使用起来相对复杂,需要手动处理线程生命周期和资源管理。在现代iOS开发中,GCD和NSOperationQueue更为常用。 多线程性能优化主要关注以下几个方面: 1. **减少主线程...

    IOS多线程理解

    本文将深入探讨iOS的三种主要多线程编程方式:NSThread、NSOperation和NSOperationQueue,以及Grand Central Dispatch (GCD)。 首先,NSThread是iOS中的一种基本线程实现。通过创建NSThread对象,我们可以简单地...

    OC多线程管理

    1. 尽可能使用GCD和NSOperationQueue,避免直接使用NSThread。 2. 将耗时操作放在后台线程,避免阻塞主线程。 3. 使用强弱引用避免循环引用和内存泄漏。 4. 注意线程间通信,避免死锁和竞态条件。 5. 对于UI更新,应...

    iOS多线程 (pthread,NSThread)简单Demo

    通过使用多线程,开发者可以在同一时间执行不同的任务,如在后台加载数据,而用户界面仍保持交互性。 1. **pthread(Posix Thread)**: Pthread是跨平台的C语言接口,用于在类Unix系统上创建和管理线程。在iOS中...

    哈哈iOS多线程面试题

    GCD是苹果推出的一种高性能的多线程解决方案,它使用了C语言的函数库,通过强大的队列管理简化了多线程编程的复杂性。 执行任务时,我们可以使用同步执行(sync)和异步执行(async)两种方式。同步执行会阻塞线程...

    线程的使用

    第三种方式是使用`NSOperationQueue`,它提供了一种更加灵活的多线程管理机制。只需将操作添加到队列中,如`[queue addOperation:op1];`,`NSOperationQueue`会根据操作的依赖关系和队列的配置自动调度线程。`...

    初尝多线程

    使用`-[NSOperationQueue addOperation:]`或`-[NSOperationQueue addOperations:waitUntilFinished:]`可以添加操作。这种方式更易用,也更灵活,适合处理复杂的异步任务。 3. GCD:作为Apple的低级并发编程接口,...

    IOS多线程编程的3种实现方法

    这是最轻量级的多线程的方法,使用起来最直观的多线程编程方法。但是因为需要自己管理线程的生命周期,线程同步。经常使用NSThread进行调试,在实际项目中不推荐使用。 //获取当前线程 NSThread *current = ...

    IOS两个精典的关于多线程的例子代码

    通过学习这两个经典例子,开发者可以深入了解`NSThread`在iOS中的使用,并结合其他多线程技术,如GCD和NSOperationQueue,构建高效、稳定的多线程应用。在实际项目中,根据任务的特性和需求选择合适的多线程实现方式...

    iOS多线程编程指南

    - 在大多数情况下,应该使用`NSOperationQueue`或`dispatch_queue_t`等高级抽象来避免直接创建线程。 **1.5.2 保持你的线程合理的忙** - 线程应该处于忙碌状态而不是空闲状态,避免不必要的上下文切换。 **1.5.3 ...

Global site tag (gtag.js) - Google Analytics