设置一个watchdog,将一次事件(读、写)封装到AsyncTimeout中,AsyncTimeout持有一个static链表,Watchdog定期检测链表。 privatestaticfinalclassWatchdogextendsThread{Watchdog(){super("Okio Watchdog");setDaemon(true);}publicvoidrun(){while(true){try{AsyncTimeouttimedOut;synchronized(AsyncTimeout.class){timedOu...
okio的话则是用一个Buffer对象去负责缓存,内部维护了一个Segment双向链表,而这个Segment则是真正的数据缓存载体,内部利用一个长度为8192的byte数组去缓存,当要写入的数据超过8192的时候则会创建多个Segment对象在链表中有序存储。当Segment使用完毕的时候又会利用SegmentPool进行回收,减少Segment对象创建。 对于输入流流到...