我的应用程序是使用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的“dumbing-down”似乎最简单。