在Thread
调用之后start()
,你知道它会调用类run()
中的函数Runnable
。在run()
函数中,我希望线程只要从客户端接收到“Bye”消息就一直存在。如果我把它们放在while循环中,我认为它会占用大量内存,而且我没有使用线程的力量。顺便说一句,我不希望我的线程通过调用在运行函数中休眠。Thread.sleep(6000);
还有其他方法可以留在运行函数中吗?
如果答案是加入在哪里以及如何使用它?我是否应该在运行函数开始时弹出它并保持在那里直到我从客户端发送“Bye”?
我应该说
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()));
.
.
..
...
}