作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用套接字设计一个聊天应用程序。这是从服务器读取数据的代码。它编译得很好,但线程只运行一次。请帮帮我。
public void reader() {
Thread read=new Thread(){
public void run(){
try {
while(true) {
if(in.readLine()!=null) {
System.out.println("Recived Message: "+ in.readLine());
}
}
}catch(Exception e){}
}
};
read.setPriority(10);
read.start();
}
好吧,我尝试了这段代码,但它不起作用
public void reader()
{
Thread u=new Thread()
{
public void run()
{
try {
while(true)
{
System.out.println("ssss");
if(input.readLine()!=null)
{
String message=input.readLine();
System.out.println("SERVER:"+message);
}
else{
Thread.sleep(1);
}
}
}
catch (IOException e)
e.printStackTrace();
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
};
try{
u.start();
}catch(Exception e){}
}
我得到的输出是SS就一次。但我有一个 while 循环始终为真。为什么 ir 不无限运行?
最佳答案
(由于信誉低而无法发表评论...)
这样更好地阅读行:
String line = "";
while( (line = in.readLine()) != null) {
System.out.println("Recived Message: " + line);
}
PS:小心,您正在调用 2 次 readLine()
关于java - 我在运行 java 线程时遇到问题,它只能运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23928745/
我是一名优秀的程序员,十分优秀!