- 博客(26)
- 收藏
- 关注
原创 rabbitmq常见问题
1、RabbitMQ如何保证消息不丢失2、RabbitMQ消息的重复消费问题如何解决3、RabbitMQ的死信交换机和延迟队列4、RabbitMQ消息堆积如何解决5、RabbitMQ的高可用机制
2024-02-03 22:11:58
628
1
原创 数据库分表分库的原则
数据库分表是将一个大表按照某种规则拆分成多个小表存储在不同的物理表中的技术。通常,拆分规则是基于某个列的值进行拆分,例如根据用户ID或日期范围等进行拆分。每个小表只包含部分数据,从而减少了单个表的数据量,提高了查询性能和并发处理能力。此外,使用数据分表还可以更好地利用硬件资源,如磁盘和内存。
2024-01-28 23:40:42
1213
1
原创 Threadlocal对象的使用
ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。这里有几点需要注意:因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。
2024-01-28 23:37:53
671
原创 ConcurrentHashMap和HashMap的区别
(1)HashMap 是基于 Map 接口的非同步实现,线程不安全,是为了快速存取而设计的;它采用 key-value 键值对的形式存放元素(并封装成 Node 对象),允许使用 null 键和 null 值,但只允许存在一个键为 null,并且存放在 Node[0] 的位置,不过允许存在多个 value 为 null 的情况。
2024-01-19 22:43:11
1056
原创 Java之CAS
它是一种乐观锁机制,通过比较内存中的值与预期值是否相等来判断是否发生了并发冲突,从而决定是否更新内存中的值。:CAS操作只能检测共享变量的值是否发生了变化,无法感知到值的变化过程中是否经历了其他操作,可能导致ABA问题。:虽然CAS操作避免了使用锁带来的性能开销,但在高并发场景下,仍可能存在竞争和冲突,导致CAS操作频繁失败。:CAS操作适用于读多写少的并发场景,特别是在没有竞争或竞争较少的情况下,可以提供较好的性能。:CAS操作只能保证对单个共享变量的原子操作,无法保证多个共享变量之间的原子性。
2024-01-19 22:38:55
420
原创 CPU密集型和IO密集型对 CPU内核之间的关系
CPU密集型与I/O密集型是在计算机上执行任务的两种策略,在并发执行任务场景下,我们需要选择使用多线程或多进程;如果是I/O密集型任务,使用多线程,线程越多越好;如果是CPU密集型任务,使用多进程,线程数量与CPU核心数匹配。我们了解这些概念有助于在资源分配和性能优化等方面有很大的帮助。我们在选择线程池的时候,我们需要知道某一个任务是否是CPU消耗型的任务,还是说I/O类型的任务,以便充分的调用CPU资源。
2023-12-07 20:01:28
1095
原创 线程池,及7大参数,4大拒绝策略详解
线程池是管理线程的一种机制,它维护着一个线程池集合,用来存储线程并重复利用这些线程来执行任务。线程池可以提高应用程序性能和响应速度,减少线程的创建和销毁所带来的开销。
2023-12-05 20:49:50
831
原创 三种定时任务总结
Schedule适用于简单的定时任务,无需引入额外依赖,但功能有限。Quartz是功能强大的任务调度框架,适用于复杂的任务调度逻辑和高可用性要求较高的场景。xxl-job是一个轻量级的分布式任务调度平台,适用于企业级任务调度和管理,提供了简便的Web界面。根据具体需求和项目规模,选择适合的任务调度框架。当任务调度需求较为简单时,可以使用Schedule;当需要更灵活和复杂的任务调度功能时,可以选择Quartz;而对于分布式任务调度和企业级任务管理,xxl-job可能更适合一些。
2023-12-04 19:48:52
904
原创 java中的synchronized
synchronized是Java中的关键字,用于实现线程之间的同步。它提供了一种独占锁的机制,确保在同一个时刻,只有一个线程可以执行某个方法或者某个代码块(主要是对方法或者代码块中存在共享数据的操作),同时我们还应该注意到synchronized另外一个重要的作用,synchronized可保证一个线程的变化(主要是共享数据的变化)被其他线程所看到(保证可见性,完全可以替代Volatile功能),这点确实也是很重要的。
2023-11-30 21:23:36
2420
原创 redis安装与五大数据类型
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
2023-10-19 21:17:31
51
原创 springmvc的工作流程
Spring MVC是Spring Framework提供的Web组件,全称是Spring Web MVC,是目前主流的实现MVC设计模式的框架,提供前端路由映射、视图解析等功能,是Java Web开发者必须要掌握的技术框架。
2023-10-17 21:35:47
53
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人