我正在使用套接字和线程进行简单的控制台聊天应用程序。我有两个不同的线程来发送和阅读邮件。除了一件事以外,一切正常。如果我目前在发送线程中,我必须阻止读者线程。阻塞输出,直到输入完成使用线程java
@Override
public void run() {
input = In.readLine();
while (!input.equals("x")) {
if (input.isEmpty()) {
Out.println("----------------------------");
Out.print("Your message: ");
message = In.readLine();
Out.println("----------------------------");
writer.println(message);
writer.flush();
}
input = In.readLine();
}
}
这里是读线程
@Override
public void run() {
try {
while ((receivedMessage = reader.readLine()) != null) {
Out.println("Received message: " + receivedMessage);
}
} catch (IOException ex) {
}
}
我要做的是以下几点:如果我目前正在写的消息“消息= In.readLine()”,并在此期间我收到一些消息,这些应该只在完成输入后才显示。
将所有传入消息添加到队列中,然后当输入完成时,处理入站消息队列并显示它们。 – KevinO
我唯一允许使用的是:线程和(同步)方法 - 等待,通知,notifyAll,加入等。有这种可能性吗? - 谢谢 –