1)异步情况下:
1.在线程1发起查询请求
2.阻塞线程2等待结果
3.线程2拿到结果,并把结果push到线程1的队列中
。。。
假如是:线程1发起了100次请求,可以看出,一定收到的也是顺序返回的。
2)再思考同步:
线程1发起func call,然后直接拿到结果。
假如是:线程1发起了100次请求,可以看出,一定收到的也是顺序返回的。
总结:这么看来,对于一个数据的处理,其实虽然是异步的,但是从最后的调用结果来看,跟在一个线程内的函数调用没什么区别!因此,这样子做(让一个数据的读写始终由一个线程维护),那么一定也是线程安全的。