目录
JUC概述
- JUC就是java.util.concurrent工具包的简称。
1.进程与线程
进程
指在系统中正在运行的一个应用程序;
程序一旦运行就是进程;
进程——资源分配的最小单位。
线程
系统分配处理器时间资源的基本单元,
或者说进程之内独立执行的一个单元执行流。
线程——程序执行的最小单位。
2.并发与并行
并发
同一时刻多个线程在访问同一个资源,多个线程对一个点。
例子:春运抢票、电商秒杀
并行
多项工作一起执行,之后再汇总
例子:泡方便面,电水壶烧水,一边撕调料倒入桶中
3.线程的6种状态
线程状态枚举类
Thread.State
新建:NEW
准备就绪:RUNNABLE
阻塞:BLOCKED
不见不散:WAITING
过时不侯:TIMED_WAITING
终结:TERMINATED
wait/sleep的区别
* sleep是Thread的静态方法, wait是Object的方法,任何对象实例都能调用。
* sleep不会释放锁,它也不需要占用锁。wait会释放锁,但调用它的前提是当前线程占有锁(即代码要在synchronized中)。
* 它们都可以被interrupted方法中断。
4.管程
Monitor监视器
* 操作系统中称为监视器,Java中称为锁
* 一种同步机制,保证同一个时间,只有一个线程访问被保护数据或者代码
* jvm同步基于进入和退出的操作,使用管程对象实现的
5.用户线程和守护线程
用户线程
平时用到的普通线程,自定义线程
守护线程
运行在后台,是一种特殊的线程,比如垃圾回收
Lock 接口
1.Synchronized 关键字
synchronized 是 Java 中的关键字,是一种同步锁。
它修饰的对象有以下几种:
1.修饰一个代码块,被修饰的代码块称为同步语句块。
作用的范围:大括号{} 括起来的代码
作用的对象:调用这个代码块的对象
2.修饰一个方法,被修饰的方法称为同步方法。
作用的范围:整个方法
作用的对象:调用这个方法的对象
3.修饰一

本文深入探讨了Java并发编程的各个方面,包括JUC(java.util.concurrent)工具包的概览,如进程与线程的区别、并发与并行的概念、线程的六种状态。详细介绍了Lock接口,比较了Lock与synchronized的区别,并讨论了线程间的通信、定制化通信和线程安全集合。此外,还涵盖了多线程锁、Callable接口、JUC的三大辅助类、读写锁、阻塞队列、线程池、Fork/Join框架以及CompletableFuture异步回调的使用。
最低0.47元/天 解锁文章
463

被折叠的 条评论
为什么被折叠?



