gpt4 book ai didi

java - 使用java.util.Timer监控java中的2个线程,它们基于计时相互依赖

转载 作者:行者123 更新时间:2023-12-01 04:52:44 27 4
gpt4 key购买 nike

我想知道如何监视两个线程,这样如果一个线程在特定时间处于等待状态,我想运行另一个线程...

要特别关注我正在做的事情。我有 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”并写入“remoteOutput”。localInput 和remoteInput 是InputStreams,而remoteInput 和remoteOutput 是简单的OutputStreams。我还想知道是否可以使用 java.util.Timer 来做到这一点请帮我渡过..提前致谢。

最佳答案

您可以结合使用等待/通知和 Timer 类来决定何时触发通知事件。

关于java - 使用java.util.Timer监控java中的2个线程,它们基于计时相互依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14685653/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com