Я хотел бы знать, что, по вашему мнению, является наилучшим способом реализации программы, в которой два потока обмениваются строками и отвечают друг другу.
Я не мог заставить его работать, либо с Java.nio.Pipe и java.io.PipedInputStream / java.io.PipedOutput.Stream
Вот пример кода того, что я хочу сделать:
Основной класс, настраивающий все.
public static void main(String[] args) {
// TODO
// Create two communication channel, and bind them together
MyThread t1 = new MyThread(channel1Reader, channel2Writer, 0);
MyThread t2 = new MyThread(channel2Reader, channel1Writer, 1);
t1.run();
t2.run();
}
Класс темы:
public class MyThread extends Thread {
private ? inputStream;
private ? outputStream;
private boolean canTalk;
private int id;
public MyThread(? inputStream, ? outputStream, boolean isStarting, int id) {
this.inputStream = inputStream;
this.outputStream = outputStream;
this.canTalk = isStarting;
this.id = id;
}
public void run() {
while(true) {
if(canTalk) {
String s = getRandomWord();
// TODO
// Write s to the output stream
}
// TODO
// Wait until receiving a String on the input stream
String s2 = the word I just received
Log.info("Thread " + id + " received the word '" + s2 + "'");
canTalk = true;
Thread.sleep(1000);
}
}
Есть идеи?
Спасибо!