当前位置:网站首页>JUC并发知识点
JUC并发知识点
2022-07-29 05:23:00 【李汁汁】
目录
什么是JUC:
JUC是java.util.concurrent包的缩写 JUC指的是Java的并发工具包
就是java.util工具包、包、分类
业务:普通的线程代码 Thread
Runnable 没有返回值 效率相比于 callable 相对较低
Lock锁
什么叫进程?
:一个程序的集合 执行起来就是一个个进程
什么是线程
一个进程包含多个线程 一个进程至少包含一个线程
java默认有几个线程 ? 2个 一个是main线程 一个是 GC线程
java真的能开启线程吗? 无法开启 调用的是本地的方法 底层的C++ Java无法直接操作硬件
理解并发和并行
并发编程的本质:充分利用cpu资源
线程 几种状态
(new )新生 (runnable)运行 ( bocked) 阻塞 (waiting) 等待 (timed_waiting) 超时等待 (terminated) 终止
wait 和sleep的区别


Lock锁
公平锁 可以先来后到
非公平锁 可以插队
Lock 和Synchronized 区别
1.Synchronized 是java的关键字 Lock是Java类
2. S无法判断锁的状态 L可以判断是否获取到锁
3 S会自动释放锁 L需要手动释放锁 不释放会造成死锁
4 S 线程1 阻塞 2就会一直等待 L不一定会等待下去
5 S 可重入锁 不可以中断 是非公平锁 L是 可重入锁 非公平(可以设置)
6 S是少量代码 L适用于大量代码
锁是什么 如何判断锁的是谁 ?
生产者消费者 两个线程不会 四个、多个线程 会造成虚假唤醒
线程可以唤醒 而不会被通知 即虚假唤醒 等待应该出现在循环中
if判断只会判断一次 唤醒时会造成虚假唤醒
if 改为 while判断
![]()

Condition 实现精准唤醒
为什么要精准唤醒 lockA线程处理完 无法确保是B线程 需要Condition 去实现精准唤醒



边栏推荐
- 智能货架安全监测系统
- Hal library learning notes-10 overview of Hal library peripheral driver framework
- 【RoboMaster】从零开始控制RM电机(2)-CAN通信原理及电调通信协议
- 华为云14天鸿蒙设备开发-Day3内核开发
- FT232替代GP232RL USB-RS232转换器芯片国产化应用
- 噪音监测传感系统
- Migration learning notes - adaptive component analysis
- 倾角传感器精度校准检测
- Hal library learning notes - 9 DMA
- 2022 spring recruit - Shanghai an road FPGA post Manager (and Lexin SOC interview)
猜你喜欢

Based on STM32: couple interactive doll (design scheme + source code +3d drawing +ad circuit)

新能源充电桩后台管理系统平台

京微齐力:基于HMEP060的OLED字符显示(及FUXI工程建立演示)

基于STC51:四轴飞控开源项目原理图与源码(入门级DIY)

【RoboMaster】A板接收JY-ME01角度传感器数据--modebus协议&CRC软件校验

How to use the pre training language model

Huawei cloud 14 days Hongmeng device development -day1 environment construction

CS5340国产替代DP5340多比特音频 A/D 转换器

基于FPGA:运动目标检测(原理图+源码+硬件选择,可用毕设)

【软件工程之美 - 专栏笔记】24 | 技术债务:是继续修修补补凑合着用,还是推翻重来?
随机推荐
【RoboMaster】A板接收JY-ME01角度传感器数据--modebus协议&CRC软件校验
零基础学FPGA(五):时序逻辑电路设计之计数器(附有呼吸灯实验、简单组合逻辑设计介绍)
2022春招——芯动科技FPGA岗技术面(一面心得)
数论:px+py 不能表示的最大数为pq-p-q的证明
STM32: mcnamu wheel tracking task (library function program code)
AttributeError: module ‘tensorflow‘ has no attribute ‘placeholder‘
STM32 printf问题总结 semihosting microLIB理解
HAL库学习笔记-10 HAL库外设驱动框架概述
QT学习笔记-Excel的导入导出
HAL库学习笔记- 8 串口通信之概念
京微齐力:基于HMEP060的OLED字符显示(及FUXI工程建立演示)
Pytorch Basics (Introductory)
SimpleFOC调参3-PID参数整定攻略
基于FPGA:运动目标检测(补充仿真结果,可用毕设)
基于STM32:情侣互动玩偶(设计方案+源码+3D图纸+AD电路)
【软件工程之美 - 专栏笔记】29 | 自动化测试:如何把Bug杀死在摇篮里?
Fasttext learning - text classification
【软件工程之美 - 专栏笔记】27 | 软件工程师的核心竞争力是什么?(上)
FPGA based: moving target detection (schematic + source code + hardware selection, available)
Hal library learning notes-14 ADC and DAC