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_Thread Safety - Fatal编程技术网

Java 访问在与另一个线程分离的线程中创建的列表

Java 访问在与另一个线程分离的线程中创建的列表,java,multithreading,thread-safety,Java,Multithreading,Thread Safety,我有一个服务器,它打开两个端口并等待多个客户端连接到每个端口。到 简化它,像这样 public class Server implements Runnable { public void run() { try{ serverSocket = new ServerSocket(port1)); new Thread1(serverSocket).start(); } cat

我有一个服务器,它打开两个端口并等待多个客户端连接到每个端口。到 简化它,像这样

public class Server implements Runnable {

    public void run() {
            try{
                serverSocket = new ServerSocket(port1));
                new Thread1(serverSocket).start();
            } catch (IOException e) {
                throw new UncheckedIOException("Error while creating server socket", e);
            }
            try{
                serverSocket = new ServerSocket(Port2);
                new Thread2(serverSocket).start();
            } catch (IOException e) {
                throw new UncheckedIOException("Error while creating server socket", e);
            }
    }
}

public class Thread1 extends Thread{
...
List list; 
}

public class Thread2 extends Thread{
...
}
Thread1
创建我需要在Thread2中访问的
列表。如果我放置
Thread1 Thread1=newthread1(serverSocket.start()
然后从Thread1使用getter方法访问我的列表,并将其作为参数传递给Thread2,如果连接了多个客户端,该参数将不起作用


如何在
Thread2
中访问
列表

为什么要在第一个线程对象中直接创建
列表
?您可以将
列表
实例移出所有线程,并将其设置为
静态
最终
,前提是该
列表
将成为共享对象。然后,通过
Thread
s访问,使用
synchronized
块使其线程安全。你能详细说明一下要求吗?那么答案就很容易了。有很多方法可以做到这一点。