首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JUC并发编程
新时代农民工0101
创建于2022-07-15
订阅专栏
JUC并发编程
暂无订阅
共19篇文章
创建于2022-07-15
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
并发与并行
并发 同一时间段内多个任务同时执行,并且执行都没有结束。同一时间段由多个单位时间累积而成。 并行 单位时间内多个任务同时执行。
ReentrantReadWriteLock
锁的演进 无锁:多线程抢夺,数据乱,无序 独占锁ReentrantLock:有序,每次只能有一个读或写操作,全部互斥 读写锁ReentrantReadWriteLock:读写互斥,读读共享 邮戳锁St
常用的并发工具类
同步屏障CyclicBarrier /ˈsaɪklɪk ˈbæriə(r)/ CyclicBarrier的字面意思是可循环(Cyclic)使用的屏障(Barrier)。让一组线程到达一个屏障(也叫同步
ThreadLocal
是什么? ThreadLocal提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候(通过其get或set方法)都有自己的、独立初始化的变量副本。Threa
线程池
ThreadPoolExecutor的7大核心参数 corePoolSize:线程池中核心线程数 maximumPoolSize:线程池中能容纳同时执行的最大线程数,必须大于等于1 keepAlive
AQS
是什么 AQS(全称AbstractQueuedSynchronizer,抽象同步队列),是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石。通过内置的FIFO队列来完成资源获取线程
Java内存模型JMM与volatile
是什么? JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在,它仅仅描述的是一组约定或规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写
多线程在单核与多核CPU上是如何运行的
多线程在单核CPU下运行多线程是没有太大意义的。CPU是通过时间片轮转的策略对线程进行调度,线程只有分配到一个时间片后才能真正运行,未分配到时间片的线程要等到下一次调度,因此会发生上下文切换,带来额外
守护线程和用户线程
Java有两类线程,分别是daemon线程(守护线程)和user线程(用户线程) 举例说明 JVM启动main线程,是用户线程,垃圾回收线程是守护线程 区别 用户线程结束时,JVM才会退出 守护线程是
线程上下文切换
理解线程上下文切换 每个CPU同一时刻只能被一个线程使用,CPU资源分配采用时间片轮转的策略,每个线程分配一个时间片,线程在时间片内执行任务,当前线程的时间片使用完后,处于就绪状态并让出CPU,获得时
线程中断机制
Java线程中断是一种协作机制,设置线程的中断标志并不能直接终止该线程执行,而是被中断的线程根据中断状态自行处理。 API核心方法 实例方法interrupt main线程调用t.interrupt(
等待线程终止
Thread类的实例方法join main线程调用t1.join(),main线程阻塞,可通过调用main.interrupt()方法唤醒阻塞线程 并发工具类CountDownLatch 应用场景 等
Java线程状态
Java的线程状态 操作系统的线程状态 操作系统的进程状态 Java的线程状态与操作系统的线程状态的关系 参考: https://blog.csdn.net/CringKong/article/det
线程休眠与让出CPU执行权
线程休眠:Thread类的静态方法sleep 暂时让出指定时间的CPU执行权,这段时间不参与CPU调度。睡眠时间到后,线程处于就绪状态,参与CPU的调度,获取CPU资源后就可以运行了。 该线程还是拥有
线程的通知与等待机制
复习时可参考JUC脑图,时间关系,先不整理这款代码实现 三种线程通知与等待的方法 使用Object中的wait()方法让线程等待,使用Object中的notify() / notifAll()方法通知
阻塞队列BlockingQueue
什么是阻塞队列BlockingQueue 类图 核心方法 常用阻塞队列 ArrayBlockingQueue 由一个数组结构组成的有界Integer.MAX_VALUE阻塞队列 LinkedBlock
生产者-消费者案例
使用阻塞队列实现生产者-消费者使用阻塞队列实现生产者-消费者使用阻塞队列实现生产者-消费者使用阻塞队列实现生产者-消费者使用阻塞队列实现生产者-消费者
创建线程的5种方式
实现Runnable接口的run方法 继承Thread类并重写run方法 使用FutureTask方式 思考 调用start方法后线程马上执行吗?\ 不是的。调用start方法后线程处于就绪状态,就绪
进程和线程
进程和线程的概念,以及它们时间的联系。实例说明,以及思考。线程是占用CPU执行的基本单元,而CPU一般是使用时间片轮转方式让线程轮询占用的。