NSThread

NSThread对象控制线程的执行。当我们需要执行一个冗长的任务,又不希望它阻塞应用程序的执行时,是用NSThread是特别有用的。

NSThread的优缺点具有以下两点。

  1. 优点:NSThread比其他Cocoa NSOperation和GCD轻量级。
  2. 缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销。

1 Initializing an NSThread Object

// 初始化NSThread
@available(iOS 2.0, *)
public init()

// 初始化NSThread
@available(iOS 2.0, *)
public convenience init(target: AnyObject, selector: Selector, object argument: AnyObject?)

2 Starting a Thread

// 分离一个线程并执行相应的代码
public class func detachNewThreadSelector(selector: Selector, toTarget target: AnyObject, withObject argument: AnyObject?)

// 开始执行
@available(iOS 2.0, *)
public func start()

// 线程的主体
@available(iOS 2.0, *)
public func main() // thread body method

3 Stopping a Thread

// 阻塞当前线程,直到指定的时间。
public class func sleepUntilDate(date: NSDate)

// 阻塞当前线程一定的时间
public class func sleepForTimeInterval(ti: NSTimeInterval)

// 终止线程
public class func exit()

// 线程取消,通知线程终止
@available(iOS 2.0, *)
public func cancel()

4 Determining the Thread’s Execution State

// 是否正在执行
@available(iOS 2.0, *)
public var executing: Bool { get }

// 是否执行完毕
@available(iOS 2.0, *)
public var finished: Bool { get }

// 是否取消
@available(iOS 2.0, *)
public var cancelled: Bool { get }

5 Working with the Main Thread

// 线程是否为主线程
@available(iOS 2.0, *)
public var isMainThread: Bool { get }

// 当前线程是否为主线程
@available(iOS 2.0, *)
public class func isMainThread() -> Bool

// 获取主线程
@available(iOS 2.0, *)
public class func mainThread() -> NSThread

6 Querying the Environment

// 获取当前线程
public class func currentThread() -> NSThread

// 当前应用能否执行多线程程序
public class func isMultiThreaded() -> Bool

// 获取堆栈空间中的线程地址
@available(iOS 2.0, *)
public class func callStackReturnAddresses() -> [NSNumber]

// 返回调用的堆栈符号
@available(iOS 4.0, *)
public class func callStackSymbols() -> [String]

7 Working with Thread Properties

// 线程字典
public var threadDictionary: NSMutableDictionary { get }

// 接收器的名
@available(iOS 2.0, *)
public var name: String?

// 占用的堆空间、bytes
@available(iOS 2.0, *)
public var stackSize: Int

8 Working with Thread Priorities

// 当前线程优先级0~1.0
public class func threadPriority() -> Double

// 设置线程优先级0~1.0
public class func setThreadPriority(p: Double) -> Bool

// 线程优先级0~1.0
@available(iOS 4.0, *)
public var threadPriority: Double // To be deprecated; use qualityOfService below

// 线程优先级
@available(iOS 8.0, *)
public var qualityOfService: NSQualityOfService // read-only after the thread is started  

 


Appendix

Sample Code

Swift

NSThread Class Reference

Revision History

时间描述
2016-01-30博文完成

CSDN:http://blog.csdn.net/y550918116j

GitHub:https://github.com/937447974/Blog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值