我想知道如何监视两个线程,如果一个线程在特定时间处于等待状态,我想运行另一个线程......
要特别关注我正在做的事情。我有 2 个线程.. 作家线程:
writer = new Thread() {
public void run() {
try {
Util.copyStream(remoteInput, localOutput);
} catch(IOException e) {
e.printStackTrace();
System.exit(1);
}
}
};
writer.setPriority(Thread.currentThread().getPriority() + 1);
writer.start();
reader.setDaemon(true);
reader.start();
try {
writer.join();
reader.interrupt();
} catch(InterruptedException e) {
}
和读者线程:
reader = new Thread() {
public void run() {
int ch;
try {
while(!interrupted() && (ch = localInput.read()) != -1) {
System.out.print((char)ch);
localOutput.write(ch);
if (ch==10) {
remoteOutput.write(ch);
remoteOutput.flush();
sleep(1000);
continue;
}
remoteOutput.write(ch);
remoteOutput.flush();
}
} catch(Exception e) {
e.printStackTrace();
}
}
};
因此,如果我的编写器线程没有从“remoteInput”写入“localOutput”超过特定时间(例如 3 秒),我应该“运行”读取器线程..,以便读取器从“localInput”读取和写入“远程输出”。localInput 和 remoteInput 是InputStreams,而 remoteInput 和 remoteOutput 是简单的OutputStreams。我还想知道是否可以使用java.util.Timer来做到这一点, 请帮助我完成..提前致谢。