## @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