上一页 1 2 3 4 5 6 ··· 16 下一页

2024年7月16日

订单超时取消的11种方式

摘要: 一、被动关闭 在解决这类问题的时候,有一种比较简单的方式,那就是通过业务上的被动方式来进行关单操作。 简单点说,就是订单创建好了之后。我们系统上不做主动关单,什么时候用户来访问这个订单了,再去判断时间是不是超过了过期时间,如果过了时间那就进行关单操作,然后再提示用户。 这种做法是最简单的,基本不需要 阅读全文

posted @ 2024-07-16 16:05 myf008 阅读(276) 评论(0) 推荐(0)

如何设计一个支持三千万用户同时在线的短视频系统?

摘要: 一、问题解析短视频(short video)通常时长在15分钟以内,主要是在移动智能终端上进行拍摄、美化编辑或加特效,并可以在网络社交平台上进行实时分享的一种新型视频形式。短视频具有时间短、信息承载量高等特点,更符合当下网民手机使用行为习惯,短视频的用户流量创造了巨大的商机。 我们准备开发一个面向全 阅读全文

posted @ 2024-07-16 11:11 myf008 阅读(250) 评论(0) 推荐(0)

2024年6月25日

new String(“abc“)到底创建了几个对象?

摘要: new String(“abc“)到底创建了几个对象? 下面代码中创建了几个对象? new String("abc");答案众说纷纭,有说创建了1个对象,也有说创建了2个对象。答案对,也不对,关键是要学到问题底层的原理。 底层原理分析 String str1 = "abc"; // 在常量池中 St 阅读全文

posted @ 2024-06-25 16:59 myf008 阅读(420) 评论(0) 推荐(0)

Fail-safe机制与Fail-fast机制分别有什么作用

摘要: 「Java面试」Fail-safe机制与Fail-fast机制分别有什么作用 前段时间一个小伙伴去面试,遇到这样一个问题。 ”fail-safe机制与fail-fast机制分别有什么作用“ 他说他听到这个问题的时候,脑子里满脸问号。那么今天我们来看一下,关于这个问题,普通人和高手应该如何回答吧。 普 阅读全文

posted @ 2024-06-25 16:38 myf008 阅读(88) 评论(0) 推荐(0)

为什么HashMap的键值可以为null,而ConcurrentHashMap不行?

摘要: 为什么HashMap的键值可以为null,而ConcurrentHashMap不行? 写在开头 昨天在写《HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!》这篇文章的时候,漏了一个知识点,直到晚上吃饭的时候才突然想到,关于ConcurrentHashMap在存 阅读全文

posted @ 2024-06-25 16:24 myf008 阅读(253) 评论(0) 推荐(0)

java中当任务数量超过了线程池的数量时,如何让任务不进入队列?

摘要: java中当任务数量超过了线程池的数量时,如何让任务不进入队列? 如果任务数量超过了线程池的数量,而你不希望让任务进入队列,可以考虑使用一个不包含工作队列的线程池。在 Java 的 ThreadPoolExecutor 中,通过将工作队列设置为 SynchronousQueue 或者通过调用 Exe 阅读全文

posted @ 2024-06-25 16:17 myf008 阅读(141) 评论(0) 推荐(0)

阻塞队列被异步消费如何保证消费顺序

摘要: 阻塞队列被异步消费如何保证消费顺序 1. 阻塞队列的特性2. 维护的两个队列3. 阻塞队列的消费过程1. 阻塞队列的特性首先阻塞队列本身是一个符合FIFO特性的队列,也就是说存储进去的元素是符合先进先出的规则。 2. 维护的两个队列其次在阻塞队列里面,使用了一个condition条件等待来维护了两个 阅读全文

posted @ 2024-06-25 16:12 myf008 阅读(186) 评论(0) 推荐(0)

怎么判断线程池的任务是不是执行完了

摘要: 怎么判断线程池的任务是不是执行完了? 有几种方法: 1、使用线程池的原生函数isTerminated() executor提供一个原生函数isTerminated()来判断线程池中的任务是否全部完成。如果全部完成返回true,否则返回false。 2、使用重入锁,维持一个公共计数 所有的普通任务维持 阅读全文

posted @ 2024-06-25 13:41 myf008 阅读(678) 评论(0) 推荐(0)

AQS为什么使用双向队列

摘要: AQS(AbstractQueuedSynchronizer)使用双向链表的主要原因是为了实现等待队列(Wait Queue)。这个等待队列是用于管理在同步器上等待的线程,例如在获取锁时发现锁被占用,线程就会加入到等待队列中等待。 使用双向链表的优点包括: FIFO(先进先出)的顺序:双向链表可以保 阅读全文

posted @ 2024-06-25 13:39 myf008 阅读(443) 评论(0) 推荐(0)

线程池源码的几个问题

摘要: 面试官: 小伙子,我看你简历上写的项目中用到了线程池,你知道线程池是怎样实现复用线程的? 我: 线程池复用线程的逻辑很简单,就是在线程启动后,通过while死循环,不断从阻塞队列中拉取任务,从而达到了复用线程的目的。 具体源码如下: // 线程执行入口 public void run() { run 阅读全文

posted @ 2024-06-25 11:20 myf008 阅读(23) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 ··· 16 下一页

导航