只有代码,解释以后加上:
#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
分享到:
相关推荐
在子线程中刷新UI,通常需要回到主线程执行,无论使用GCD、NSThread还是NSOperationQueue,都需要确保UI更新在主线程进行,以免出现界面卡顿或数据不一致的问题。例如,可以使用`DispatchQueue.main.async`、`-...
NSOperation和NSOperationQueue是Apple在iOS和macOS开发中提供的多线程处理框架,用于高效管理和调度异步任务。这两个类是Foundation框架的一部分,旨在简化并发编程,提高应用程序的性能和响应性。 **NSOperation*...
本文将深入探讨四种常用的iOS多线程开发方式:pthread、NSThread、NSOperation及NSOperationQueue,以及Grand Central Dispatch(GCD)。 首先,让我们了解下pthread。pthread是POSIX线程库,它在iOS中被用于跨平台...
在iOS中,我们可以使用GCD(Grand Central Dispatch)或者NSOperationQueue来实现线程间的同步消息传递。GCD是Apple提供的一种多任务调度框架,它简化了线程管理,同时提供了队列来处理同步和异步任务。 1. GCD同步...
2. NSThread:轻量级线程类,允许开发者手动创建和管理线程,但使用相对复杂。 3. NSOperationQueue:基于GCD的高级抽象,提供了任务依赖、优先级等功能,更易于使用和管理。 4. NSTimer:通常在RunLoop中运行,不...
它允许开发者直接操作线程对象,包括线程的启动、挂起、恢复和终止。 二、创建和使用`NSThread` 创建一个`NSThread`通常涉及以下步骤: 1. 定义线程执行的代码:你需要创建一个实现了`NSThread`协议的方法,这个...
本文将深入探讨在iPhone开发中使用Object-C实现多线程的相关知识点。 一、多线程基础 1. 主线程:主线程是应用的入口,负责处理UI更新和用户交互。为了保证界面的流畅,所有的UI操作应该在主线程上进行。 2. 工作...
总之,“iOS多线程Demo”是一个很好的学习资源,它涵盖了iOS多线程开发的基础和实践,包括NSOperationQueue、GCD和NSThread的使用,以及多线程下的UI更新和线程安全。通过这个Demo,开发者可以更深入地理解多线程...
除了`NSThread`,还可以使用GCD(Grand Central Dispatch)或NSOperationQueue来管理线程。GCD是Apple提供的异步编程框架,它基于C语言,但提供了Objective-C接口。通过GCD,可以方便地创建并行任务,如: ```objc ...
因此,理解和正确使用常驻线程是iOS开发者必备的技能之一。 本话题主要探讨如何实现两个线程循环交替调用的机制,这通常是为了平衡负载或者实现特定的并发模式。例如,一个线程负责下载数据,另一个线程负责处理...
3. **NSThread**:允许直接创建和管理线程,但使用起来相对复杂,需要手动处理线程生命周期和资源管理。在现代iOS开发中,GCD和NSOperationQueue更为常用。 多线程性能优化主要关注以下几个方面: 1. **减少主线程...
本文将深入探讨iOS的三种主要多线程编程方式:NSThread、NSOperation和NSOperationQueue,以及Grand Central Dispatch (GCD)。 首先,NSThread是iOS中的一种基本线程实现。通过创建NSThread对象,我们可以简单地...
1. 尽可能使用GCD和NSOperationQueue,避免直接使用NSThread。 2. 将耗时操作放在后台线程,避免阻塞主线程。 3. 使用强弱引用避免循环引用和内存泄漏。 4. 注意线程间通信,避免死锁和竞态条件。 5. 对于UI更新,应...
通过使用多线程,开发者可以在同一时间执行不同的任务,如在后台加载数据,而用户界面仍保持交互性。 1. **pthread(Posix Thread)**: Pthread是跨平台的C语言接口,用于在类Unix系统上创建和管理线程。在iOS中...
GCD是苹果推出的一种高性能的多线程解决方案,它使用了C语言的函数库,通过强大的队列管理简化了多线程编程的复杂性。 执行任务时,我们可以使用同步执行(sync)和异步执行(async)两种方式。同步执行会阻塞线程...
第三种方式是使用`NSOperationQueue`,它提供了一种更加灵活的多线程管理机制。只需将操作添加到队列中,如`[queue addOperation:op1];`,`NSOperationQueue`会根据操作的依赖关系和队列的配置自动调度线程。`...
使用`-[NSOperationQueue addOperation:]`或`-[NSOperationQueue addOperations:waitUntilFinished:]`可以添加操作。这种方式更易用,也更灵活,适合处理复杂的异步任务。 3. GCD:作为Apple的低级并发编程接口,...
这是最轻量级的多线程的方法,使用起来最直观的多线程编程方法。但是因为需要自己管理线程的生命周期,线程同步。经常使用NSThread进行调试,在实际项目中不推荐使用。 //获取当前线程 NSThread *current = ...
通过学习这两个经典例子,开发者可以深入了解`NSThread`在iOS中的使用,并结合其他多线程技术,如GCD和NSOperationQueue,构建高效、稳定的多线程应用。在实际项目中,根据任务的特性和需求选择合适的多线程实现方式...
- 在大多数情况下,应该使用`NSOperationQueue`或`dispatch_queue_t`等高级抽象来避免直接创建线程。 **1.5.2 保持你的线程合理的忙** - 线程应该处于忙碌状态而不是空闲状态,避免不必要的上下文切换。 **1.5.3 ...