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
块使其线程安全。你能详细说明一下要求吗?那么答案就很容易了。有很多方法可以做到这一点。