- 博客(12)
- 收藏
- 关注
原创 438. 找到字符串中所有字母异位词 (滑动窗口)
给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词:指由相同字母重排列形成的字符串(包括相同的字符串)
2024-04-06 21:59:20 219 1
原创 零一背包问题(java)
在零一背包问题中,给定一组物品,每个物品有自己的重量和价值,以及一个固定的背包容量,我们需要确定如何选择装入背包,使得装入背包的物品总价值最大,且总重量不超过背包的容量。给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。dp初始化:背包容量为0时,价值为0。第零个物品,价值任然为零。第一个物品时,如果背包容量大于物品重量,价值就是第一个物品的价值,否则价值为0。个物品中,背包容量为。
2024-03-01 17:23:37 378 1
原创 ThreadLocal与InheritableThreadLocal
ThreadLocal:本地线程变量,通过 set() 和 get() 方法来维护局部变量。不同线程之间局部变量彼此隔离,互不影响.每个 Thread 维护着一个 ThreadLocalMap 的引用。ThreadLocalMap 是 ThreadLocal 的内部类,用 Entry 来进行存储。调用 ThreadLocal 的 set() 方法时,实际上就是往 ThreadLocalMap 设置值,key 是ThreadLocal 对象,值是传递进来的对象。调用 ThreadLocal 的 get() 方
2024-01-20 21:14:56 372
原创 线程池(ThreadPoolExecutor)
假如创建线程池核心线程数10个,最大线程数20个,阻塞对列长度为10。当50个任务同时出现时,1-10个任务交个10个核心线程处理,11-20的任务到工作队列排队等待执行。21-30的任务交给10个非核心线程执行。31-50的任务出发拒绝执行策略。非核心线程数空闲存活时间。工作队列(阻塞队列)线程工厂(创建线程)
2024-01-20 19:43:24 358
原创 RabbitMQ如何确保消息可靠性
问题四:消息消费成功,事务已经提交,ack时,机器宕机。TODO 解决方案:一定要开启手动ACK,消息消费成功才发送ACK,将消息从队列中移除,失败或者没来得及处理就重新入队。问题二:消息到达broker,broker要将消息持久化到磁盘才算成功,此时broker尚未持久化成功就宕机。TODO 解决方案:实现product与broker之间的消息确认机制,修改数据库消息状态。问题三:自动ACK的状态下,消费者收到消息,但是还没来得及消费消息就宕机了。问题一:消息因为网络原因无法到达broker。
2023-12-20 22:25:01 392
原创 谷粒商城下单的事务控制与消息队列
我们之前成功创建订单时肯定给队列stock.delay.queue发送过消息了,只需要将stock.delay.queue这个队列的TTL时间比order.release.order.queue时间长就可以了,order.release.order.queue的消息应该先被消费了,订单状态被修改为已取消状态了,此后消费stock.delay.queue消息时,会发现订但状态时取消状态,他就会去解锁库存。// 没有订单:说明订单逻辑异常回滚了,那么库存也应该回滚。
2023-12-19 22:12:21 997
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人