如何在Java中的不同线程中运行客户端套接字?

如何在Java中的不同线程中运行客户端套接字?,java,multithreading,sockets,memory-management,Java,Multithreading,Sockets,Memory Management,我正在编写一个程序,通过网络交换机控制多台Pc。我对mulithreading了解不够,无法理解内存是如何处理的,但是如何调用infSockeThread.start()并已连接到ip1、ip2、ip3。。?当我按原样发布代码时,显然在我第二次调用它时,它会覆盖InfoSocket类中的内存。基本上,我希望运行InfoSocket类的次数与运行PC的次数相同,每个PC都有自己独特的连接 例如,我在我的主课中称之为: String[] compTestArray = {"172.1

我正在编写一个程序,通过网络交换机控制多台Pc。我对mulithreading了解不够,无法理解内存是如何处理的,但是如何调用
infSockeThread.start()并已连接到ip1、ip2、ip3。。?当我按原样发布代码时,显然在我第二次调用它时,它会覆盖InfoSocket类中的内存。基本上,我希望运行InfoSocket类的次数与运行PC的次数相同,每个PC都有自己独特的连接

例如,我在我的主课中称之为:

        String[] compTestArray = {"172.16.98.6", "172.16.98.3"};

        for(int i = 0; i < compTestArray.length; i++){

            InfoSocket infSocket = new InfoSocket(compTestArray[i]);
            Runnable infRunnable = infSocket;
            Thread infSockeThread = new Thread(infRunnable);

            infSockeThread.start();

        }

InfoSocket
中的字段不应是静态的。这就是为什么它会在您第二次调用它时覆盖内存。如果它们不是
静态的
,则每个
InfoSocket
实例都有自己的变量副本

顺便说一下,没有必要写:

Runnable infRunnable = infSocket;
InfoSocket
已处于可运行状态。你可以简单地写:

Thread infSockeThread = new Thread(infSocket);

非常感谢。我想我需要加强我的Java!
Thread infSockeThread = new Thread(infSocket);