-->

随笔分类 -  并发、线程、锁、安全

摘要:1、ConcurrentHashMap 1.1、为什么需要 ConcurrentHashMap 常用的HashMap在多线程情况下,在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,但是这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境 阅读全文
posted @ 2023-09-01 15:27 角刀牛Java 阅读(56) 评论(0) 推荐(1) 编辑
摘要:线程池在开发中一定会用到,如果能像golang一样,java语言也有协程,也许java程序员就少了一种包袱。 回归正题,我们聊下到底有哪些线程池的使用方式,总结有以下几种。 JDK 内置线程池 Spring线程池 自己魔改封装 1、JDK 内置线程池 常用的有: 我们看下最全的线程池参数,探究为什么 阅读全文
posted @ 2023-08-31 17:15 角刀牛Java 阅读(50) 评论(0) 推荐(0) 编辑
摘要:1. 概述 1.1 线程池是什么 线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。 创建线程本身开销大,反复创建并销毁,过多的占用内存。所以有大量线程创建考虑使用线程池。线程池不用反复创建线程达到线程的复用,更具配置合理利用cpu和内存减少了 阅读全文
posted @ 2023-08-31 16:32 角刀牛Java 阅读(363) 评论(0) 推荐(0) 编辑
摘要:本篇文章,我将和大家介绍 Spring 中的一个注解 @Transactional,将介绍一下 @Transactional的基本概念以及具体的使用方法。希望本篇文章能够对对大家的学习有所帮助! 一、Transactional 声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标 阅读全文
posted @ 2023-08-28 09:09 角刀牛Java 阅读(116) 评论(0) 推荐(0) 编辑
摘要:8 个 Java 线程池最佳实践和坑! 1、正确声明线程池 线程池必须手动通过 ThreadPoolExecutor 的构造函数来声明,避免使用Executors 类创建线程池,会有 OOM 风险。 Executors 返回线程池对象的弊端如下(后文会详细介绍到): FixedThreadPool  阅读全文
posted @ 2023-08-17 11:40 角刀牛Java 阅读(182) 评论(0) 推荐(0) 编辑
摘要:Java 的集合框架提供了许多集合类,其中有些是线程安全的,有些是非线程安全的。以下是一些线程安全的集合类: 1. Vector:Vector 是线程安全的动态数组类,与 ArrayList 类似,但它是同步的。 2. Stack:Stack 类是 Vector 的一个子类,它实现了一个后进先出的堆 阅读全文
posted @ 2023-08-17 11:00 角刀牛Java 阅读(1753) 评论(0) 推荐(0) 编辑
摘要:在Java相关的岗位面试中,很多面试官都喜欢考察面试者对Java并发的了解程度,而以volatile关键字作为一个小的切入点,往往可以一问到底,把Java内存模型(JMM),Java并发编程的一些特性都牵扯出来,深入地话还可以考察JVM底层实现以及操作系统的相关知识。 下面我们以一次假想的面试过程, 阅读全文
posted @ 2023-08-17 10:55 角刀牛Java 阅读(17) 评论(0) 推荐(0) 编辑
摘要:其实,很多初学者(包括我自己)初期学习多线程时都被视频带偏了...虽然我始终认为培训班的视频是最适合非科班零基础入门的,但是在多线程方面,无一例外都讲得比较糟糕。 感触很深的一点是:很多新手觉得多线程难,并不是因为volatile、ReentrantLock或者Executor线程池,而是从一开始就 阅读全文
posted @ 2023-08-17 10:31 角刀牛Java 阅读(22) 评论(0) 推荐(0) 编辑
摘要:电商系统中秒杀是一种常见的业务场景需求,其中核心设计之一就是如何扣减库存。本篇主要分享一些常见库存扣减技术方案,库存扣减设计选择并非一味追求性能更佳,更多的应该考虑根据实际情况来进行架构取舍。在商品购买的过程中,库存的抵扣过程通常包括以下步骤: 开启事务:在开始进行库存抵扣操作前,开启一个事务。 查 阅读全文
posted @ 2023-08-16 15:59 角刀牛Java 阅读(270) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示