gpt4 book ai didi

java - 一个好的线程设计可以保持运行以监视是否有待处理的请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:29 26 4
gpt4 key购买 nike

我有一个包含 10 个线程的线程池。我想让这 10 个线程继续运行以监视是否有新的请求待处理。这是一个好的设计吗?如果是,我怎样才能让它们继续运行?因为现在,他们完成了一次工作然后就结束了。如果不是,什么是更好的设计?我们有什么方法可以让一个线程继续完成这项工作,而当有一个请求变为未决状态时,第二个线程会继续运行?谢谢

最佳答案

线程 run() 应该在一个循环中运行,像这样:

class Executor extends Thread {
Runnable task;

public void run() {
for (;;) {
task.run();
synchronized (this) {
try {
wait();
} catch (InterruptedException e) {
}
}
}
}

基于队列的版本:

public void run() {
for (;;) {
try {
Runnable task = queue.take();
task.run();
} catch (InterruptedException e) {
}
}
}

关于java - 一个好的线程设计可以保持运行以监视是否有待处理的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44224191/

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