我的应用程序是使用 nanoHTTPD 作为在 Android UI 上按下按钮和键入文本的替代方法,以进行自动化和回归测试我目前有一个主 UI 线程和一个在不同线程中运行的自定义 nanoHTTPD。考虑到每个 HTTP 请求都将在 UI 线程中快速得到服务。如果我可以强制 nanoHTTPD 不为每个传入请求启动新线程,我认为我的模型可以简化。对于我的用例,我完全不介意阻塞 I/O 模型。我看到有一个可插拔的线程策略。是否可以修改以下内容以使一次只有一个 Web 请求处于活动状态(阻塞模型)?
public static class DefaultAsyncRunner implements AsyncRunner {
private long requestCount;
@Override
public void exec(Runnable code) {
++requestCount;
Thread t = new Thread(code);
t.setDaemon(true);
t.setName("NanoHttpd Request Processor (#" + requestCount + ")");
t.start();
}
}
我可能还可以做更复杂的消息队列,但在一个线程中“简化”到 nanoHTTPD 似乎最简单。