Lambda表达式多线程中出现错误
今天做项目的时候遇到的,有一个函数取一个Object为参数,然后这个函数里面声明了一个Runnable,这个Runnable也用到了参数object,大概的代码如下
public void testFunction(Object obj) {
Runnable runnable = () -> {使用obj参数做一些操作}
TaskService.execute(runnable);
return ;
}
现在有个问题,如果在短时间内多次call这个函数,每次传入的obj参数都不同,可能会出现每个runnable中使用的object都是最后一次调用函数时传的参数,请问这种现象有没有个特定的名字,百度了一顿没有搜到,有没有什么方法解决呢?