私はクライアント サーバー アプリケーションを読み、クライアントはサーバーを介して相互作用します。したがって、この目的のために、別のスレッドでクライアントを作成したいと考えています。(そうでない場合、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) にあることに気付きました。理由は説明できません。
私が遭遇する問題は次のとおりだと思います。同じクラスで複数のスレッドを作成するのではなく、このクラスを複数回実行します。これは奇妙な問題だと思いますが、それでも理由を説明できません。
私とこれを修正する方法を説明してください。
ありがとう :)