这里有什么区别呢?为什么说后面这个会引起线程冲突。

来源:7-11 客户端实现搜索人功能

小土boo

2020-04-15

图片描述

写回答

2回答

passerbyYSQ

2020-04-23

我在看视频的时候,好像有好几处类似的地方,纳闷为什么老师要多此一举,要搞个副本。

0
2
小土boo
觉得我自己还是Java基础不够吧,猜想可能是searchcall本来就是异步的,他可能此时正在执行着别的任务,没办法取消。用另一个call指向这个searchcall然后重新开一个线程取消……只是个人猜测。
2020-04-23
共2条回复

Qiujuer

2020-05-29

这个其实算是习惯性的写法。一般对于一个方法中有2次以上的使用场景时,我就会保存为局部变量进行操作,这样可以避免反复查询成员变量,其效率更高。

另外一点就是如上所示的call是有可能等于null的,那么我们在第一步判断可能通过了,但是后面的执行之前,可能被另外的地方设置为null了,就会导致空指针问题。所以为了避免这种情况写为局部变量会更好。

0
0

手把手开发完整的即时通讯App 客户端+服务端+MVP架构

客户端+服务端+MVP架构+封装思想+主流框架

1749 学习 · 872 问题

查看课程