- 博客(8)
- 收藏
- 关注
原创 IO多路复用详解,select、poll、epoll系统调用深度分析
在BIO(同步阻塞IO)和NIO(同步非阻塞IO中),在内核进行将数据拷贝到应用程序的过程中(也就是到数据可用),都会导致线程阻塞。这种模式在处理大量并发请求时效率会很低,因为每个线程可能会长时间等待,浪费系统资源。而多路复用IO是一种允许单个线程通过观察多个IO通道来同时处理多个链接到机制,只有在有IO事件发生时,线程才会进行处理,特别适用于需要处理大量网络连接到场景,比如高并发的服务器应用。
2024-09-11 18:17:59 1097
原创 HashMap实现原理(详解含源码解析)
引入:已经有了TreeMap,为什么还要有HashMap?如果数据比较少,使用TreeMap存储,红黑树还需要旋转、变色等操作,有点大材小用;数据量少点情况下,直接使用数组最为简单;随着时间的推移,存储的数据越来越多,数组达到瓶颈;如果直接使用红黑树,数据量越大,所需要的旋转、变色也就越多;可见,没有一种数据结构能满足不同状态的所有需求需要选择多种数据结构来满足需求。
2024-08-27 13:16:47 1063
原创 AVL树、2-3-4树、红黑树节点增加删除原理(详细说明)
删除节点:BST树:删除的是叶子结点:直接删除该节点,不需要进一步调整删除的节点只有一个叶子结点:将该节点的子节点连接到该节点的父节点上,替换被删除的节点删除的节点有两个子节点:找到删除节点的前驱节点(即左子树中的最大节点)或后继节点(即右子树中的最小节点),然后用前驱或后继节点的值替换要删除节点的值,并删除前驱或后继节点。AVL树:和BST相同,AVL树在删除节点时也会寻找要删除节点的前驱或后继节点,进行替换并删除。
2024-08-21 15:54:54 1091
原创 RabbitMQ高级篇,分别从生产者,消息队列,消费者增加消息可靠性
消息可靠性(Message Reliability)是指在消息传递系统中,确保消息从发送方传递到接收方的过程中不丢失、不重复、按顺序到达且不会被篡改的一系列技术和机制。在消息传输过程中,不免会出现消息丢失的情况。
2024-08-01 15:24:35 993
原创 RabbitMQ详细介绍,RabbitMQ结构,RabbitMQ如何使用?几种交换机的区别?
我们可以查看源码,源码中可见,发送消息的时候会对消息是否需要转换进行判断(不是message 类型则会调用消息转换器进行消息转换)消息转换器中默认使用最终代码实现为,try {try {if (bytes!= null) {使用jdk自带的序列化(对象字节流)转为字节try {jdk自带的序列化缺点:1.转换之后体积太大2.可读性低3.具有安全漏洞(可变的,被修改之后,反序列化可能会生成非法代码)
2024-07-29 11:35:12 947
原创 什么是MQ? MQ怎么选择?(详细解释)
选择 RabbitMQ:当需要灵活的路由、高可靠性和多协议支持时,特别是在企业应用集成和轻量级任务队列场景下。选择 ActiveMQ:当需要 JMS 兼容性、多协议支持和企业级消息传递时,特别是在异构系统集成和传统企业应用中。选择 RocketMQ:当需要高吞吐量、低延迟和分布式事务支持时,特别是在金融、电商和实时数据处理场景中。选择 Kafka:当需要高吞吐量、低延迟、可扩展性和持久化消息支持时,特别是在大数据、实时数据流处理和日志收集场景中。
2024-07-25 18:39:18 2877 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人