iOS 中线程安全且高吞吐量的模型

线程安全且高吞吐量的模型,意思就是多读单写的的意思,来自《高性能iOS应用开发》一书中4.5.4节,swift实现如下:

1、定义一个并发线程:

let stateQueue: DispatchQueue = DispatchQueue(label: "com.taskOperation.stateQueue", attributes: .concurrent)

2、get 方法实现:

 return stateQueue.sync {  _state } 

3、set方法实现

stateQueue.sync(flags: .barrier) { self._state = newValue }

注意点:

1、将stateQueue.sync用于不修改状态的操作,如get方法

2、将stateQueue.sync(flags: .barrier) 或 stateQueue.async(flags: .barrier)用于可能修改状态的操作,如set方法

3、barrier 允许在并发队列中创建同步点,在barrier前提交的任务全部执行完成后会执行barrier中提交的任务,之后在执行barrier后提交的任务,保证在线程安全的前提下实现多次读取数据,单次写入数据。

你可能感兴趣的:(iOS 中线程安全且高吞吐量的模型)