Java “是兰姆达”;上下文“;记录器线程安全?
假设我在lambda函数中有这个线程类Java “是兰姆达”;上下文“;记录器线程安全?,java,multithreading,lambda,thread-safety,Java,Multithreading,Lambda,Thread Safety,假设我在lambda函数中有这个线程类 public class MyThread implements Runnable { private Context context; public MyThread(Context context){ this.context = context; } @Override public void run(){ context.getLogger().log("I am us
public class MyThread implements Runnable {
private Context context;
public MyThread(Context context){
this.context = context;
}
@Override
public void run(){
context.getLogger().log("I am using the context logger");
}
}
我在主处理程序类中创建这样的线程
while(someCondition){
threadPool.submit(new MyThread(context));
}
这个线安全吗?如果两个或多个线程希望同时使用上下文记录器,该怎么办?如果不是,那么这样的解决方案是什么?您的
MyThread
不是线程,而是可运行的。。。并且如图所示的类是安全的(将final添加到private字段不会有任何影响)。问题可能是Context
是否是线程安全的…如果您使用的是某个对象的数据,您不需要担心线程安全,那么在修改它时您需要担心。什么是“Context
”?与“lambda”有什么关系?你的MyThread
不是一个线程,而是一个Runnable
。。。并且如图所示的类是安全的(将final添加到private字段不会有任何影响)。问题可能是Context
是否是线程安全的…如果您使用的是某个对象的数据,您不需要担心线程安全,那么在修改它时您需要担心。什么是“Context
”?和“lambda”有什么关系?