## @NSThread的使用
### 1.显示调用的类为NSThread有两种直接创建方式:
**- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument(手动开启)**
**+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument(自动开启)**
~~~
1、[NSThread detachNewThreadSelector:@selector(doSomething:) toTarget:self withObject:nil];
2、NSThread* myThread = [[NSThread alloc] initWithTarget:self
selector:@selector(doSomething:)
object:nil];
[myThread start];
~~~
### 2\. 不显式创建线程的方法:
**通过NSObject的Category方法调用:**
**- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait; //在主线程中运行方法,wait表示是否阻塞这个方法的调用,如果为YES则等待主线程中运行方法结束。一般可用于在子线程中调用UI方法。**
**- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thread withObject:(id)arg waitUntilDone:(BOOL)wait;** //**在指定线程中执行,但该线程必须具备run loop。**
**- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg;** //产生新线程。
**3.NSThread的其它一些常用的方法**
**1. + (NSThread *)currentThread; //获得当前线程**
**2. + (void)sleepForTimeInterval:(NSTimeInterval)ti; //线程休眠**
**3. + (NSThread *)mainThread; //主线程,亦即UI线程了**
**4. - (BOOL)isMainThread; + (BOOL)isMainThread; //当前线程是否主线程**
**5. - (BOOL)isExecuting; //线程是否正在运行**
**6. - (BOOL)isFinished; //线程是否已结束**
**7.- (void)cancel // 终止线程循环**
**8.- (void)start // 开启线程循环**
- 前言
- 沙盒机制与文件(一)
- 沙盒机制和文件(二)
- 沙盒机制和文件(三)
- NSBundle介绍以及读取沙盒文件路径问题
- 数据持久化(一)-----归档 读写 文件路径
- 数据持久化(二)-----Sqlite
- 数据持久化(三)使用第三方类库FMDB
- 数据持久化(四)之NSUserDefaults
- 数据持久化(五)之CoreData
- 数据持久化(六)之Using CoreData with MagicalRecord
- 数据解析(一)解析XML之系统自带NSXMLParse类
- 数据解析(二)解析XML之GDataXMLNode
- 数据解析(三)解析JSON-----系统自带NSJSONSerialization 与 第三方JSONKit
- iOS多线程编程(一)NSThread
- iOS多线程编程(二)NSOperationQueue
- iOS多线程编程(三)Grand Central Dispatch(GCD)详解
- iOS网络编程(一)NSURLConnection
- iOS网络编程(二) 自定义请求网络类----推荐用于需要请求过程片段数据
- iOS网络编程(三) 异步加载及缓存图片---->SDWebImage
- iOS网络编程(四) 异步加载及缓存图片-----自定义类
- iOS网络编程(五) 异步加载及缓存图片-----EGO
- iOS网络编程(六) NSURLSession详解
- iOS网络编程(7) 第三方开源库----->AFNetworking