- 目录一:多线程环境使用ArrayList二:多线程环境使用队列三:多线程环境使用哈希表(面试高频)一:多线程环境使用ArrayList引入:原来的集合类,大部分都是线程不安全的,但是有几个例外:Vector,Stack,HashTable(这几个类)但是现在官方已经不太推荐使用了,后续可能会删掉——因为哪怕是在单线程下也要加锁,这种情况不合理(往下看)在这些类内部中,把一些关键的方法都加锁... 目录一:多线程环境使用ArrayList二:多线程环境使用队列三:多线程环境使用哈希表(面试高频)一:多线程环境使用ArrayList引入:原来的集合类,大部分都是线程不安全的,但是有几个例外:Vector,Stack,HashTable(这几个类)但是现在官方已经不太推荐使用了,后续可能会删掉——因为哪怕是在单线程下也要加锁,这种情况不合理(往下看)在这些类内部中,把一些关键的方法都加锁...
- 目录引入:一:Callable和FutureTask类二:ReentrantLock——可重入锁三:Semaphore——信号量四:CountDownLatch引入:通过之前的学习,我们了解到CAS本质上是JVM替我们封装好的,我们没有办法感知到在java.util.concurrent中存放了一些我们多线程编程时常用的类看下面的一些接口:是不是非常熟悉,我们把这个packet包简称为(J... 目录引入:一:Callable和FutureTask类二:ReentrantLock——可重入锁三:Semaphore——信号量四:CountDownLatch引入:通过之前的学习,我们了解到CAS本质上是JVM替我们封装好的,我们没有办法感知到在java.util.concurrent中存放了一些我们多线程编程时常用的类看下面的一些接口:是不是非常熟悉,我们把这个packet包简称为(J...
- 目录一:CAS指令二:原子类三:CAS是如何避免线程安全问题四:CAS中ABA问题一:CAS指令1:概念CAS是CPU中的一条特殊的指令,它的功能就是完成“比较和交换”2:伪代码例子说明伪代码:只能表示一种逻辑,并不能实现编译执行注:CAS指令一般只关注内存当中的值,寄存器当中的值是多少不打紧,用完就不要了3:优点CAS指令不涉及锁,也能保证线程的安全二:原子类1:引入在Java中:先是操... 目录一:CAS指令二:原子类三:CAS是如何避免线程安全问题四:CAS中ABA问题一:CAS指令1:概念CAS是CPU中的一条特殊的指令,它的功能就是完成“比较和交换”2:伪代码例子说明伪代码:只能表示一种逻辑,并不能实现编译执行注:CAS指令一般只关注内存当中的值,寄存器当中的值是多少不打紧,用完就不要了3:优点CAS指令不涉及锁,也能保证线程的安全二:原子类1:引入在Java中:先是操...
- 目录一:乐观锁和悲观锁二:轻量级锁和重量级锁三:自旋锁和挂起等待锁四:普通互斥锁和读写锁五:公平锁和非公平锁六:可重入锁和不可重入锁七:synchronized自适应阶段八:锁消除九:锁粗化一:乐观锁和悲观锁1:乐观锁在加锁过程中,预估发生锁冲突的概率小,降低加锁的工作量,加锁的效率就提高了,安全系数不高(可能会引发占用大量cpu资源的问题)2:悲观锁在加锁过程中,预估发生锁冲突的概率大,... 目录一:乐观锁和悲观锁二:轻量级锁和重量级锁三:自旋锁和挂起等待锁四:普通互斥锁和读写锁五:公平锁和非公平锁六:可重入锁和不可重入锁七:synchronized自适应阶段八:锁消除九:锁粗化一:乐观锁和悲观锁1:乐观锁在加锁过程中,预估发生锁冲突的概率小,降低加锁的工作量,加锁的效率就提高了,安全系数不高(可能会引发占用大量cpu资源的问题)2:悲观锁在加锁过程中,预估发生锁冲突的概率大,...
- 目录引入:问题引入一:解决方案二:ThreadPoolExecutor(标准库线程池)三:Executors(工厂类)四:通过代码实现简单的线程池引入:问题引入在之前的学习中,我们了解到,为了降低频繁创建和销毁进程所带来的巨大开销,我们引入了轻量级进程的概念(线程)现在若线程的数量进一步提升,那么线程的频繁创建和销毁所带来的资源消耗,我们也不能忽视了所以我们进行优化,引入了“池”的概念:这... 目录引入:问题引入一:解决方案二:ThreadPoolExecutor(标准库线程池)三:Executors(工厂类)四:通过代码实现简单的线程池引入:问题引入在之前的学习中,我们了解到,为了降低频繁创建和销毁进程所带来的巨大开销,我们引入了轻量级进程的概念(线程)现在若线程的数量进一步提升,那么线程的频繁创建和销毁所带来的资源消耗,我们也不能忽视了所以我们进行优化,引入了“池”的概念:这...
- 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录一:阻塞队列二:“生产者消费者模型”——包饺子三:“生产者消费者模型”——分布式系统四:自己实现一个阻塞队列一:阻塞队列1:概念对于一个满的队列,入队操作就会陷入阻塞,直到这个队列有元素出队后,才可以往队列里面加入元素。对于一个空的队列,出队操作就会陷入阻塞,直到这个队列有元素入队后,才可以对队... 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录一:阻塞队列二:“生产者消费者模型”——包饺子三:“生产者消费者模型”——分布式系统四:自己实现一个阻塞队列一:阻塞队列1:概念对于一个满的队列,入队操作就会陷入阻塞,直到这个队列有元素出队后,才可以往队列里面加入元素。对于一个空的队列,出队操作就会陷入阻塞,直到这个队列有元素入队后,才可以对队...
- 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录一:单例模式(singleton)二:“饿汉模式”三:“懒汉”模式四:“饿汉”模式线程安全问题五:“懒汉”模式的线程安全问题六:指令重排序问题一:单例模式(singleton)1:概念单例模式就是,在java进程中,要求指定的类,只能有一个对象我们通过一些特殊的技巧来确保,我们的实例(对象)只有... 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录一:单例模式(singleton)二:“饿汉模式”三:“懒汉”模式四:“饿汉”模式线程安全问题五:“懒汉”模式的线程安全问题六:指令重排序问题一:单例模式(singleton)1:概念单例模式就是,在java进程中,要求指定的类,只能有一个对象我们通过一些特殊的技巧来确保,我们的实例(对象)只有...
- 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录引子:一:情景引入二:线程饿死问题三:wait和notify引子:wait和notify与join的用途有些类似。wait(等待)notify(通知)机制通过引入wait和notify在应用层面上对多线程代码的执行顺序产生干预。此处干预并不影响到操作系统对线程的随机调度一:情景引入有四个滑稽老铁... 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录引子:一:情景引入二:线程饿死问题三:wait和notify引子:wait和notify与join的用途有些类似。wait(等待)notify(通知)机制通过引入wait和notify在应用层面上对多线程代码的执行顺序产生干预。此处干预并不影响到操作系统对线程的随机调度一:情景引入有四个滑稽老铁...
- 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录一:内存可见性问题一:内存可见性问题内存可见性引起的多线程安全问题(一个线程读,一个线程写)package thread;import java.util.Scanner;/**Created with IntelliJ IDEA.Description:User: Hua YYDate: 20... 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录一:内存可见性问题一:内存可见性问题内存可见性引起的多线程安全问题(一个线程读,一个线程写)package thread;import java.util.Scanner;/**Created with IntelliJ IDEA.Description:User: Hua YYDate: 20...
- 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录一:加锁的“可重入性”二:死锁三:解锁引入:通过上一篇文章的学习,我们针对线程安全问题,简单认识了synchronized关键字,给操作“打包”,避免了一些多线程会出现的bug,通过本章学习我们将更进一步的学习Synchronized一:加锁的“可重入性”1:问题引入我们给Thread线程,加两... 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录一:加锁的“可重入性”二:死锁三:解锁引入:通过上一篇文章的学习,我们针对线程安全问题,简单认识了synchronized关键字,给操作“打包”,避免了一些多线程会出现的bug,通过本章学习我们将更进一步的学习Synchronized一:加锁的“可重入性”1:问题引入我们给Thread线程,加两...
- 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录一:问题引入二:问题深入三:synchronized关键字(加锁)一:问题引入用多线程,让计数器自增到1_0000package thread;public class ThreadDemon19 {private static long count = 0;public static void... 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!目录一:问题引入二:问题深入三:synchronized关键字(加锁)一:问题引入用多线程,让计数器自增到1_0000package thread;public class ThreadDemon19 {private static long count = 0;public static void...
- 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能帮到你!目录引入:一:Thread类二:线程的随机调度引入:通过前面的学习,我们了解到现在主流的编程方式为,多进程编程和多线程编程在java中并不推荐使用多进程编程这种方式,因为很多跟多进程编程有关的api,Java标准库中都没有提供。但是多线程不一样,操作系统给我们提供了很多api,但是这些api都是C++、... 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能帮到你!目录引入:一:Thread类二:线程的随机调度引入:通过前面的学习,我们了解到现在主流的编程方式为,多进程编程和多线程编程在java中并不推荐使用多进程编程这种方式,因为很多跟多进程编程有关的api,Java标准库中都没有提供。但是多线程不一样,操作系统给我们提供了很多api,但是这些api都是C++、...
- 一:进程对内存的管理1:进程的独立性:进程是如何管理内存的,核心:每个进程都有一块独立的内存,进程与进程之间的内存互不干扰,通常情况下,进程A的内存不能访问进程B的内存好处“进程独立性”:如果进程A的内存超出了给分配的内存大小(即内存越界)或者出现某些bug导致进程A挂掉,不会影响到进程B的运行二:“进程间的通信”引入:虽然进程有独立性,但是有一些任务还需要进程与进程之间进行相互配合去完成... 一:进程对内存的管理1:进程的独立性:进程是如何管理内存的,核心:每个进程都有一块独立的内存,进程与进程之间的内存互不干扰,通常情况下,进程A的内存不能访问进程B的内存好处“进程独立性”:如果进程A的内存超出了给分配的内存大小(即内存越界)或者出现某些bug导致进程A挂掉,不会影响到进程B的运行二:“进程间的通信”引入:虽然进程有独立性,但是有一些任务还需要进程与进程之间进行相互配合去完成...
- 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能帮到你!目录一:操作系统二:进程、任务三:进程的调度引入:软件工程的本质,针对“复杂程度”的管理,管理的本质就是“抽象和封装”一:操作系统1:操作系统的定位和功能2:多任务操作系统3:单任务操作系统二:进程、任务1:进程概念正在运行的程序就叫做进程或者任务2:进程是“系统分配资源”的基本单位每个任务在执行的过程... 阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能帮到你!目录一:操作系统二:进程、任务三:进程的调度引入:软件工程的本质,针对“复杂程度”的管理,管理的本质就是“抽象和封装”一:操作系统1:操作系统的定位和功能2:多任务操作系统3:单任务操作系统二:进程、任务1:进程概念正在运行的程序就叫做进程或者任务2:进程是“系统分配资源”的基本单位每个任务在执行的过程...
- 标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳... 标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签