针对数据读写,是所有缓存手段都需要用到的,不管是内存缓存,还是物理缓存,而在处理缓存的时候,更多的需要考虑到读写的耗时,放入多线程的并发处理,下面实现数据读写的线程控制,达到一个读读之间并行,读写之间串行,写写之间串行:
首先创建一个自定义的队列,以及一个不耗时的读任务,一个耗时较大的写任务:
一中是并行队列创建,二是简单异步读任务,三中耗时的写任务,一个barrier中执行的异步任务,先看打印结果,然后再看看原理:
在每个写任务与上次的任务的时间间隔中,没有其他执行的任务,这就是由于barrier的隔离作用,保证barrier的任务执行,队列其他任务都处于阻塞状态(暂时这么说,没想到其他好的词,😄)。
最后,还有一点,文件的读读之间并行不会出现线程安全(竞态,了解线程安全原理即可),读读之间并行,对于文件i/o效率是有提升的,特别是在读数据操作多、而且文件资源大的时候,读写串行(基本类似数据一致性的保证,同时多线程的操作安全,也要称做读写互斥),写写串行(写写互斥),这些都是基本所有缓存都会去处理的!