线程
-
浅谈自旋锁和 JVM 对锁的优化
背景 先上图 由此可见,非自旋锁如果拿不到锁会把线程阻塞,直到被唤醒;自旋锁拿不到锁会一直尝试 为什么要这样? 好处 阻塞和唤醒线程都是需要高昂的开销的,如果同步代码块中的内容不复…
-
多线程编程系列之多线程和异步编程模型
多线程和异步编程模型都是用来提高程序的性能和响应速度的技术,但它们之间存在一些区别和联系。 多线程是指在同一个进程中同时运行多个线程,每个线程都有自己的执行上下文和堆栈空间,并可以…
-
你真的了解ForkJoinPool吗?这些技巧让你的代码性能提升十倍!
1、线程池简介 线程池是一种常见的多线程编程方式,它可以有效地管理线程的创建、销毁和复用,从而提高程序的性能和稳定性。Java中提供了多种线程池实现,包括ForkJoinPool、…
-
多线程编程之常见错误实践和优秀实践
在多线程编程中,由于存在共享资源和竞争条件等问题,容易出现各种错误。以下是一些常见的多线程编程错误及如何避免它们: 竞态条件(Race Condition):在多个线程同时访问共享…
-
ThreadLocal 使用介绍以及内存溢出分析
一,概述 ThreadLocal是Java中的一个线程级别的变量,它为每个线程提供了独立的变量副本,从而避免了线程间的数据共享和竞争。然而,如果不注意使用和管理ThreadLoca…
-
转转B2C一站式服务告警治理的背后



1 为什么写这篇文章 转转B2C技术部主要负责商详、商列等BFF层核心页面业务,单接口甚至需要开线程池并行调用二十多个依赖服务,因此依赖的服务以及执行线程池的稳定性也就成为了B2C…
-
信号量对象没有所有者,你明白了吗?
相较于互斥对象(Mutex)和临界区对象(Critical Section) ,信号量没有所有者,它们只有计数。 ReleaseSemaphore 函数将会以指定的数量增加对应信号…
-
蔚来手撕代码题:三个线程循环打印ABC



问题如下: https://www.nowcoder.com/discuss/493178141461041152 思路分析 三个线程交替打印 ABC 的实现方法有很多,我个人比较…
-
处理大规模数据计算任务,Fork/Join框架是您的得力助手!
1、JUC包概述 JUC是Java Util Concurrency的缩写,即Java并发工具包。JUC包提供了一些常用的线程和并发编程工具类,帮助开发者更方便地开发多线程应用程序…
-
Java I/O大揭秘:BIO、NIO、AIO到底有何区别?
大家好,我是小米,一个热爱技术分享的小编。今天,我要和大家聊一聊在Java中,那些让人听起来很高大上的BIO、NIO、AIO,到底有什么区别呢?让我们一起来深入探索吧! BIO是什…
-
你的Java集合线程安全吗?快来检查一下!
简介 在多线程编程中,使用线程安全的集合是非常重要的,它可以保证多个线程同时访问同一个集合时,不会出现数据不一致的情况。 Java 中提供了多种线程安全的集合实现,本文将详细介绍这…
-
并发编程:volatile关键字,你学会了吗?
一、64位写入的原子性(Half Write) 如,对于一个long型变量的赋值和取值操作而言,在多线程场景下,线程A调用set(100),线程B调 用get(),在某些场景下,返…