
并发
文章平均质量分 86
ZMXQQ233
Nothing to give up
展开
-
【并发】并发
并发进程和线程进程:资源分配的基本单位。可以理解为在内存中运行的程序。每个进程都有独立的内存空间,一个进程包含多个线程线程:任务执行的基本单位。负责进程中任务的执行。每个线程共享进程的内存空间,一个线程使用时,其他线程必须等待。用户 (User) 线程:运行在前台,执行具体的任务,如程序的主线程、连接网络的子线程等都是用户线程。守护 (Daemon) 线程:运行在后台,为其他前台线程服务。也可以说守护线程是 JVM 中用户线程的 “佣人”。一旦所有用户线程都结束运行,守护线程会随 JVM 一原创 2021-03-01 20:08:35 · 877 阅读 · 0 评论 -
【多线程】如何创建线程池
文章目录ThreadPoolExecutor构造方法创建线程池Executors创建线程池(不要用)Executors中四种线程池实现方式:Executors返回的线程池对象的弊端如下:ThreadPoolExecutor构造方法创建线程池import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicInteger;/** * 线程池创建 * @author zmxqq * @date 2020/12/1 - 1原创 2021-01-12 19:06:37 · 270 阅读 · 0 评论 -
【并发】锁是什么?
锁文章目录锁1.锁的类型乐观锁CASCAS的操作过程CAS的三个问题悲观锁自旋锁适应性自旋锁无锁偏向锁轻量级锁重量级锁公平锁非公平锁可重入锁非可重入锁独享锁共享锁锁状态只能升级不能降级。2.锁状态升级原理偏向锁轻量级锁各种锁的比较3.synchronized3.1 synchronized修饰方法和同步代码块的区别3.3 synchronized分别修饰在实例方法和静态方法时,多线程并发时会竞争锁4.ReentrantLockReentrantLock与Synchronized的区别:ReentrantL原创 2020-12-15 00:26:45 · 641 阅读 · 0 评论 -
【多线程】多线程-简单
文章目录0.概念1.Thread类主要方法执行start()和run():中断**interrupted()** :isInterrupted :interrupt() :线程间协作join() :join(long)睡眠sleep(long) :Thread的sleep()与Object.wait()区别:yield():2.ThreadLocal2.1ThreadLocal与Thread2.2ThreadLocal类几个核心方法:2.3ThreadLocal的应用场景Session管理:数据库连接:Th原创 2020-12-01 20:26:33 · 172 阅读 · 0 评论 -
搞定HashMap线程不安全问题-----ConcurrentHashMap源码解析
搞定HashMap线程不安全问题-----ConcurrentHashMap源码解析前言 HashMap是线程不安全的集合,如果要保证线程安全该怎么做呢? 首先,HashMap为什么会线程不安全? jdk1.7中,在多线程环境下,(头插法)扩容时会造成环形链或数据丢失。 jdk1.8中,在多线程环境下,PUT方法会发生数据覆盖的情况。 如何保证线程安全?//替代HashMap的方式public static void main(String[] arg原创 2020-09-07 13:31:24 · 324 阅读 · 0 评论 -
ReentrantLock源码分析及AQS原理
ReentrantLock源码分析及AQS原理ReentrantLock源码分析ReentrantLock(可重入互斥锁)。可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提锁对象得是同一个对象或者class),不会因为之前已经获取过还没释放而阻塞。我们从构造函数开始逐步分析。ReentrantLock的两个构造函数,默认使用的是非公平sync对象public ReentrantLock() { sync = new Nonfair原创 2020-08-23 20:12:42 · 205 阅读 · 0 评论