我们有一个系统在同一时间范围内产生1到N个异步请求(“foo”)。这些在主线程以外的线程上启动,并且所有这些请求都不一定来自同一个线程。分析同步异步请求的一般策略
异步请求的回调都在一个特定的线程上处理,为了讨论起见,我们将称之为'bar'线程。
所有完成'请求方'对我们来说都是不透明的。我们无法访问该库。
到目前为止,我们已经得到了一个非常简单的分析器,它基本上调用markStart('measurement name')
和markDone('measurement name')
来计时请求。我越来越接近于从我们开始foo请求的时间开始到通过bar处理它的个人foo请求。
很明显,我们现有的分析器不起作用,我需要引入一种方法,将正确的markDone()
回调调用与其对应的markStart()
从foo关联起来。
如果我们的请求有某种方式的序列号返回响应,它将是直截了当的,但我们没有这些。
是否有一种智能的通用方法,可以将ID与每个请求相关联,在线程中可见,或者在这种情况下的分析通常以不同方式处理(如果有的话)?
感谢麦克。这太棒了。我一直在想如何解决这个问题,这是一个非常有趣的整体观点。周末我会考虑一些不错的问题。 –