JUC之线程和进程

什么是JUC:java.util.concurrent+java.util.concurrent.atomic+java.util.concurrent.locks

进程:是程序运行和资源分配的基本单位

线程是CPU调度和分派的 能够独立运行的基本单位

一个进程往往可以包含多个线程,至少包含一个,Java默认有2个线程:main+GC

java真的可以开启线程吗?不可以:

调用的本地方法,底层为c++,Java无法直接操作硬件。

并发:多个任务交替使用同一个cpu核心,宏观上看起来一起再跑,微观上同一时刻只有一个任务在执行,依靠cpu快速切换任务(时间片轮转)实现。

并行:多个任务在多个cpu核心上,真正同一时刻一起执行。多核cpu才能做到。

线程的几种状态:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED

wait/sleep的区别:

1.来自不同的类,wait来自Object,sleep来自Thread

2.关于锁的释放,wait会释放锁,sleep不会

3,使用范围不同,wait必须在同步代码快中,sleep无限制

4,关于捕获异常,wait不需要,sleep需要捕获异常

相关推荐
vx_Biye_Design7 分钟前
springboot一站式旅游管理平台81037-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·课程设计·express·旅游
写后端的胖头鱼12 分钟前
时间复杂度 & 空间复杂度
java·数据结构·算法·时间复杂度·空间复杂度
嵌入式学习菌16 分钟前
ESP32 ModbusTCP 分片缓存
java·后端·spring
vx_Biye_Design17 分钟前
springboot宠物寄养服务预约与监管系统82684-计算机课程设计、毕业设计
java·vue.js·spring boot·elasticsearch·课程设计·express·宠物
程序员小杰@23 分钟前
Spring Boot 常用注解分类速记
java·spring boot·后端
vx_Biye_Design28 分钟前
springboot小学生英语学习APP62773-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·学习·课程设计
吴声子夜歌30 分钟前
Nginx应用与运维——Nginx日志管理
java·运维·nginx
guo_wen_qiang1 小时前
云服务器nacos搭建-集群&持久化
java·运维·服务器
江江爱编程1 小时前
java零基础保姆级教学01
java·开发语言