- 目的:就是每来一个请求, 为这个请求创建一个线程来执行此请求。从而保证程序不会被堵塞。
public class Message {
private final String data;
public Message(String data) {
this.data = data;
}
public String getData() {
return data;
}
}
public class MessageHandler {
private final Random random = new Random(System.currentTimeMillis());
private final Executor executor = Executors.newFixedThreadPool(5);
public void request(Message message) { executor.execute(() -> {
String data = message.getData();
System.out.println(Thread.currentThread().getName() + " :: " + data);
try {
Thread.sleep(random.nextInt(100));
} catch (InterruptedException e) {
e.printStackTrace();
}
});
}
public void shutDown() {
((ExecutorService)executor).shutdown();
}
}
public class MessageHandlerDemo {
public static void main(String[] args) {
MessageHandler handler = new MessageHandler();
IntStream.rangeClosed(1, 10).forEach(i -> {
handler.request(new Message(String.valueOf(i)));
});
System.out.println("关闭线程池");
handler.shutDown();
}
}