记录一下基础概念并行:多个进程一起执行,比如说两队人在两个窗口打饭(想到了大学生活)并发并发和时间有关,脱离时间谈并发是不靠谱的。在单位时间内,多个线程一起执行,抢占cpu资源。比如说坐公交,以前都是你抢我夺,提前上车抢位置(现在好多了)Thread的创建方式只有两种,一种extend Thread ,另一种 implements Runnable;如下图所示,Thread源码中有说明
学习完Java基础后,让我们开始踏上进阶之旅,一起感受Java并发编程的魅力。今天是第一篇内容——并发编程线程基础。本篇内容将介绍进程与线程的概念和区别、线程创建和运行的几种方式、线程通知与等待、线程常用方法、守护线程和用户线程、ThreadLocal的使用与原理等内容。01进程与线程进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程中至
原创 5月前
74阅读
juc 是 java.util.concurrent 的简称,为了支持高并发任务,在编程时可以有效减少竞争条件和死锁线程.juc 主要包含 5 大工具包工具包描述locks- R
原创 2024-04-17 12:12:37
67阅读
并行和并发都是多任务处理的概念,但它们的含义不同。并行是指两个或多个任务在同一时刻执行,即在同一时刻
原创 2024-04-17 13:42:49
67阅读
今天开始学习Java并发编程系列的第二篇内容——多线程并发编程进阶。本篇内容将介绍synchronized、volatile关键字、Unsafe类、锁、和伪共享等内容。01synchronized关键字Java中共享变量的内存可见性问题:Java 内存模型规定,将所有的变量都存放在主内存中,当线程使用变量时,会把主内存里面的变量复制到自己的工作空间或者叫作工作内存,线程读写变量时操作的是自己工作内
原创 5月前
86阅读
今天学习Java第十五个专题——Java并发编程。01进程与线程进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。线程是进程中的一个实体,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。值得注意的是,CPU资源是分配给线程的,因为真正占用CPU运行的是线程,所以线程是CPU分配的基本单位。Java中,当我们启动main函数时其实就启动了一个JVM进程,而main函
原创 5月前
55阅读
从本章开始,我们正式进入Java多线程进阶篇的学习。初学者通过基础篇的学习,应该已经对多线程的初步使用有了基本概念和掌握。多线程这块知识的学习,真正的难点不在于多线程程序的逻辑有多复杂,而在于理清J.U.C包中各个多线程工具类之间的关系、特点及其使用场景(从整体到局部、高屋建瓴,这对学习任何知识都至关重要,如果读者能坚持阅读到本系列的Executors框架,你会明白我为什么强调全局视野的重要性)。
原创 精选 2023-02-20 16:24:53
165阅读
作用:执行第一个参数指定的次数之后,最后一个线程执行第二个参数中的任务。 应用场景:在微服务中调用五个接口,确保5个接口执行完毕,再执行自己的业务逻辑。 import java.util.Random; import java.util.concurrent.CyclicBarrier; impor
原创 2022-06-01 21:30:27
169阅读
作用:直译:倒数的门闩,倒数指定的次数,await才继续往下执行。 import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; im
原创 2022-06-01 21:30:32
81阅读
【原创】Java并发编程系列29|ConcurrentLinkedQueue收录于话题#java976#程序员2286#并发编程240#进阶架构师|并发编程专题12★★★建议星标我们★★★公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。2020年Java面试题库连载中【000期】Java最全面试题库思维导图【0
原创 2020-11-20 09:39:59
176阅读
【原创】Java并发编程系列13|LookSupport收录于话题#进阶架构师|并发编程专题12个本文为何适原创并发编程系列第13篇,文末有本系列文章汇总。java.util.concurrent中源码频繁使用的LockSupport来阻塞线程和唤醒线程,如AQS的底层实现用到LockSupport.park()方法和LockSupport.unpark()方法。LockSupport到底是什么?
原创 2020-11-20 16:03:27
468阅读
【原创】Java并发编程系列36|FutureTask收录于话题#进阶架构师|并发编程专题12#并发2#java2★★★建议星标我们★★★公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。2020年Java原创面试题库连载中【000期】Java最全面试题库思维导图【001期】JavaSE面试题(一):面向对象【0
原创 2020-11-19 22:04:10
450阅读
【原创】Java并发编程系列30|ThreadLocal收录于话题#java976#程序员2286#并发编程240#进阶架构师|并发编程专题12★★★建议星标我们★★★公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。2020年Java原创面试题库连载中【000期】Java最全面试题库思维导图【001期】Java
原创 2020-11-20 09:34:04
131阅读
   java多线程与并发java
原创 2023-05-08 12:36:20
165阅读
【原创】Java并发编程系列02|并发编程三大核心问题收录于话题#进阶架构师|并发编程专题12个点击上方“java进阶架构师”,选择右上角“置顶公众号”20大进阶架构专题每日送达写在前面编写并发程序是比较困难的,因为并发程序极易出现Bug,这些Bug有都是比较诡异的,很多都是没办法追踪,而且难以复现。要快速准确的发现并解决这些问题,首先就是要弄清并发编程的本质,并发编程要解决的是什么问题。本文将带
原创 2020-11-21 08:07:08
210阅读
压测代码: @SpringBootTest @Slf4j public class FastBootApplicationTest { /** * 并发数量 */ public static final int THREAD_NUM=14000;private static final String
原创 2022-06-01 21:30:21
122阅读
Java并发编程系列20|StampedLock源码解析收录于话题#进阶架构师|并发编程专题12个点击上方“java进阶架构师”,选择右上角“置顶公众号”20大进阶架构专题每日送达本文为何适原创并发编程系列第20篇,文末有本系列文章汇总。上一篇介绍了StampedLock存在的意义以及如何使用StampedLock,按照这个系列的风格大家也应该猜到了,这一篇就是StampedLock的源码分析。这
原创 2020-11-20 14:37:40
365阅读
写本文起源于某朋友的面试中问道线程池相关的问题,看完本文,你会了解线程池。我们预先留下3个问题。(1)线程池有哪些参数?(2)有哪些类型的线程池?有什么区别?(3)有哪些拒绝策略?1、什么是线程池       线程池其实就是有多个线程的池子,通过维护一定数量的线程从而达到减少创建和销毁线程的损耗,从而提高资源的利用率。如果我们不用线程池,那么我们只能自己new Thread进行创建线程,而且销毁也
原创 2021-02-28 13:59:08
245阅读
「AQS」是AbstractQueuedSynchronizer的简称,它提供了一种等待唤醒的机制。底层核数据结构是双端队列。采用自旋 + LockSupport + CAS来实现这种等待唤醒。在java的「JUC」并发包下很多类都是基于「AQS」实现的。下面我们来介绍几种并发类。Semaphore俗称「信号量」,用于控制在同一时间内共享资源被多少线程共享。可以作为流浪控制。使用案例/** * D
原创 2021-04-12 11:29:24
148阅读
【原创】Java并发编程系列27|ConcurrentHashMap(下)收录于话题#进阶架构师|并发编程专题12个点击上方“java进阶架构师”,选择右上角“置顶公众号”20大进阶架构专题每日送达2020年Java面试题库连载中【000期】Java最全面试题库思维导图【001期】JavaSE面试题(一):面向对象【002期】JavaSE面试题(二):基本数据类型与访问修饰符【003期】JavaS
原创 2020-11-20 09:50:51
172阅读
  • 1
  • 2
  • 3
  • 4
  • 5