...
| Code Block | ||
|---|---|---|
| ||
class Helper {
public void handle(Socket socket) {
//...
}
}
final class RequestHandler {
private final Helper hhelper = new Helper();
private final ServerSocket server;
private RequestHandler(int port) throws IOException {
server = new ServerSocket(port);
}
public static RequestHandler getInstance(int port) throws IOException {
return new RequestHandler(port);
}
public void handleRequest() {
new Thread(new Runnable() {
public void run() {
try {
hhelper.handle(server.accept());
} catch (IOException e) {
// Forward to handler
}
}
}).start();
}
}
|
...
| Code Block | ||
|---|---|---|
| ||
// class Helper remains unchanged
final class RequestHandler {
private final Helper hhelper = new Helper();
private final ServerSocket server;
private final ExecutorService exec;
private RequestHandler(int port, int poolSize) throws IOException {
server = new ServerSocket(port);
exec = Executors.newFixedThreadPool(poolSize);
}
public static RequestHandler getInstance(int port, int poolSize) throws IOException {
return new RequestHandler(port, poolSize);
}
public void handleRequest() {
exec.submit(new Runnable() {
public void run() {
try {
hhelper.handle(server.accept());
} catch (IOException e) {
// Forward to handler
}
}
});
}
}
|
...