并发编程
文章平均质量分 92
Java并发编程
b17a
这个作者很懒,什么都没留下…
展开
-
Java实现多线程交替打印a、b、c、......字符(多种实现方式)
面试经常会遇到使用Java多线程交替打印字符的问题,本文采用synchronized+wait/notify、ReentranLock+Condition、LockSupport多种方式讲解实现思路以及最终的代码实现原创 2022-07-10 15:41:24 · 3192 阅读 · 0 评论 -
CountDownLatch、Semaphore、CyclicBarrier使用及原理分析
本文主要讲解Java并发工具包常用的工具类的使用场景以及实现原理,包括CountDownLatch、Semaphore、CyclicBarrier原创 2022-07-10 11:56:10 · 396 阅读 · 0 评论 -
透析ThreadLocal(以源码角度讲解原理)
本文主要以案例+源码的形式介绍ThreadLocal相关原理,对于概念术语,网上一大堆,而且不容易理解,本篇旨在通过源码的形式让读者深入理解并掌握ThreadLocal,面试时遇到相关题目更有底气地show给面试官。...原创 2022-07-02 10:15:14 · 317 阅读 · 0 评论 -
详解Java线程池
工作原理: Java线程池主要用于管理线程组及其运行状态,以便Java虚拟机更好的利用CPU资源。Java线程池的工作原理为:JVM先根据用户的参数创建一定数量的可运行的线程任务,并将其放入队列中,在线程创建后启动这些任务,如果线程数量超过了最大线程数量(用户设置的线程池大小),则超出数量的线程排队等候,在有任务执行后,线程池调度器会发现可用的线程,进而再次从队列中取出任务并执行。 线程池的主要作用是线程复用、线程资源管理、控制操作系统的最大并发数,以保证系统高效(通过线程资源复用实现)且安全(通过控制最大原创 2021-04-05 15:38:52 · 299 阅读 · 1 评论 -
深入理解AQS(源码剖析)
1、概述 1.1、基本介绍: AQS(Abstract Queued Synchronizer)是一个抽象的队列同步器,通过维护一个共享资源状态(volatile int state)和一个先进先出(FIFO)的线程等待队列(CLH)来实现一个多线程访问共享资源的同步框架。 1.2、原理: AQS为每个共享资源都设置一个共享资源锁,线程在需要访问共享资源时首先需要获取共享资源锁,如果获取到了共享资源锁,便可以在当前线程中使用该共享资源,如果获取不到,则将该线程放入线程等待队列,等待下一次资源调度,具体的流程原创 2021-04-03 23:01:43 · 261 阅读 · 0 评论 -
一篇带你走进Java多线程的世界
序言: 相对于传统的单线程,多线程在操作系统多核配置的基础上,能够更好地利用服务器的多个CPU资源,使程序运行起来更加高效。Java通过提供对多线程的支持来在一个进程内并发执行多个线程,每个线程都并行执行不同的任务,以满足编写高效率程序的要求。 Java中的线程 基本介绍: 操作系统在运行一个程序时,会为其创建一个进程。进程是操作系统分配资源的基本单位,而线程也叫轻量级进程(Light Weight Process),是处理器调度的基本单位,一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部原创 2021-04-03 10:34:50 · 122 阅读 · 0 评论