ご存知のように を呼び出したThread
後、クラス内の関数が呼び出されます。関数では、クライアントから「さようなら」メッセージを受け取る限り、スレッドを維持したいと考えています。それらをwhileループに入れると、大量のメモリが必要になると思いますが、スレッドの力を使用していません。ちなみに、実行関数でスレッドをスリープさせたくないのですが、実行関数でそこにとどまる他の方法はありますか?start()
run()
Runnable
run()
Thread.sleep(6000);
答えが、どこで、どのように参加し、それを使用する場合? run 関数の最初にポップする必要があり、クライアントから「さようなら」を送信するまでそこにとどまりますか?
私は言うべき
while((request=in.readLine())!=null){
ですか?クライアントとの接続が失われると思うか、クライアントとの接続が失われると思うので、うまくいきませんでしたか?少し危険な
while(Thread.isAlive)
呼び出しで「バイ」を受け取ったときに、脅威を言ってから殺す必要がありますか?Thread.stop
ここに私の単純化されたコードがあります:
while(true)
{
ClientWorker w;
try
{
w = new ClientWorker(serverSocket.accept());
Thread t = new Thread(w);
t.start();
}
...... }
class ClientWorker implements Runnable {
public ClientWorker(Socket incoming)
{
myList = my;
this.incoming = incoming;
}
public synchronized void run()
{
in = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
.
.
..
...
}