我读过一个客户端-服务器应用程序,客户端通过服务器交互。所以,为此,我想在不同的线程上创建客户端。(如果没有,它们通常会被 IO 阻塞)。
这是我的客户代码:
public class Client {
//some client code here
public static void main(String[] args) {
new Thread() {
@Override
public void run() {
long threadId = Thread.currentThread().getId();
System.out.println("Client creator thread id: " + threadId);
Client c = new Client();
// some code to run client
}
}.start();
}
}
我多次运行这个类文件(通过直接在 IDE 中运行,或创建 bat 文件)。而且我注意到它们都在同一个线程上(相同的线程ID)。我无法解释为什么。
我认为我遇到的问题是:我不在同一个类中创建多个线程,而是多次运行这个类。虽然我认为这会产生奇怪的问题,但仍然无法解释原因。
请为我解释一下以及如何纠正这个问题。
谢谢 :)