曹耘豪的博客

OkHttpClient入门

  1. 阻塞IO
  2. callTimeout实现
    1. 加入调度
    2. 超时检测

阻塞IO

callTimeout实现

实现类: AsyncTimeout.kt

核心实现方式:单向链表 + WatchDog线程

加入调度

核心方法: AsyncTimeout.scheduleTimeout()

请求发起前,会执行transmitter.timeoutEnter(),内部是timeout.enter()

AsyncTimeout内部有一个静态单向链表,链表的顺序即时超时的顺序

超时检测

核心方法: AsyncTimeout.awaitTimeout()

   /