提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
Thread-Per-Message 模式需要注意线程的创建,销毁以及是否会导致OOM。
Java 中使用会存在性能缺陷
。在Java中的线程是一个重量级的对象,创建成本很高,第一点创建线程比较耗时
,第二点线程占用的内存也比大
。所以为每个请求创建一个新的线程并不适合高并发场景
。为了解决这个缺点,Java并发包里提供了线程池等工具类。在Java中的线程是一个重量级的对象,创建成本很高,第一点创建线程比较耗时
,第二点线程占用的内存也比大
。所以为每个请求创建一个新的线程并不适合高并发场景
。
/**
* @author yang
* @version 1.0.0
*/
public class ThreadPerMessageExample {
public static void main(String[] args) {
TaskHandler taskHandler = new TaskHandler();
for (int i = 0; i < 5; i++) {
String task = "任务" + i;
taskHandler.handleTask(task);
}
}
static class TaskHandler {
public void handleTask(String task) {
Thread thread = new Thread(() -> {
System.out.println("处理" + task + " 在线程" + Thread.currentThread().getName());
});
thread.start();
}
}
}
Thread-Per-Message 模式的一个最经典的应用场景是网络编程里服务端的实现,服务端为每个客户端请求创建一个独立的线程,当线程处理完请求后,自动销毁,这是一种最简单的并发处理网络请求的方法。