Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “是兰姆达”;上下文“;记录器线程安全?_Java_Multithreading_Lambda_Thread Safety - Fatal编程技术网

Java “是兰姆达”;上下文“;记录器线程安全?

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

假设我在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 using the context logger");
    }

}

我在主处理程序类中创建这样的线程

while(someCondition){

    threadPool.submit(new MyThread(context));

}


这个线安全吗?如果两个或多个线程希望同时使用上下文记录器,该怎么办?如果不是,那么这样的解决方案是什么?

您的
MyThread
不是线程,而是
可运行的
。。。并且如图所示的类是安全的(将final添加到private字段不会有任何影响)。问题可能是
Context
是否是线程安全的…如果您使用的是某个对象的数据,您不需要担心线程安全,那么在修改它时您需要担心。什么是“
Context
”?与“lambda”有什么关系?你的
MyThread
不是一个线程,而是一个
Runnable
。。。并且如图所示的类是安全的(将final添加到private字段不会有任何影响)。问题可能是
Context
是否是线程安全的…如果您使用的是某个对象的数据,您不需要担心线程安全,那么在修改它时您需要担心。什么是“
Context
”?和“lambda”有什么关系?