开发问题记录
2019-04-23 本文已影响0人
来自蒙塔基的钢蛋儿
开发需求遇到一个场景,异步请求同一个接口时间间隔太小,导致server判定为恶意请求,会把一部分request断开。
解决方案:子线程同步 延时执行。
有下边两个方案
gcd并发队列+同步执行
gcd串行队列+异步执行
初步一看应该都能满足需求,但实际情况不是的。
并发队列+同步执行,并不会直接创建新的线程执行任务,apple为了优化,是这样处理的,同步任务默认在当前线程执行,也就是说如果当前是线程2触发任务,那么就会在线程2同步执行。
串行队列+异步执行,会创建一条新线程执行。满足需求!