IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JUC概述(一) -> 正文阅读

[Java知识库]JUC概述(一)

【尚硅谷】大厂必备技术之JUC并发编程2021新版_哔哩哔哩_bilibili

一、简介

JUC 就是 java.util.concurrent 工具包的简称。这是一个处理线程的工具包,JDK 1.5 开始出现的。

二、进程与线程

?进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程是资源分配的最小单位。

?线程:系统分配处理器实际资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程是程序执行的最小单元。

三、线程的状态

1. 线程状态枚举类

(1)NEW(新建)

(2)RUNNABLE(准备就绪)

(3)BLOCKED(阻塞)

(4)WAITING(不见不散)

(5)TIMED_WAITING(过时不候)

(6)TERMINATED(终结)

2. wait/sleep

(1)sleep 是 Thread 的静态方法,wait 是 Object 的方法,任何对象实例都能调用。

(2)sleep 不会释放锁,它也不需要占用锁。wait 会释放锁,但调用它的前提是当前线程占用锁(即代码要在 synchronized 中)

(3)它们都可以被 interrupted 方法中断。

四、管程(锁)

定义:

指管理共享变量以及对共享变量操作的过程,让它们支持并发。翻译成 Java 领域的语言,就是管理类的状态变量,让这个类是线程安全的。

synchronized 关键字 和 wait()、notify()、notifyAll() 这三个方法是 Java 中实现管程技术的组成部分。

管程对应的英文是 Monitor,直译为“监视器”,而操作系统领域翻译为“管程”。

五、用户线程和守护线程

守护线程是一种特殊的线程,在后台默默地完成一些系统性的服务。它独立于控制终端并且周期性地执行某种任务或等待某些发生的事件。比如垃圾回收机制、JIT 线程 都是守护线程。

与之对应的是用户线程,用户线程可以理解为是系统的工作线程,它会完成这个程序需要完成的业务操作。如果用户线程全部结束了,意味着程序需要完成的业务操作已经结束,系统可以退出。所以当系统只剩下守护线程的时候,java 虚拟机会自动退出。

在 Java 中有两种线程:用户线程和守护线程。

通过 Thread.setDaemon(false) 设置为用户线程

通过 Thread.setDaemon(true) 设置为守护线程

线程属性的设置要在线程启动之前,否则会报 IllegalThreadStateException 异常

如果不设置线程属性,那么默认为用户线程

主线程结束,子线程1 是用户线程,内部有死循环,一直处于运行状态。JVM 存活。

?

子线程为设置为守护线程,main?方法所在的主线程执行完毕后,JVM 结束。

当程序中所有的用户线程执行完毕之后,不管守护线程是否结束,系统都会自动退出。

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:08:21  更:2021-12-15 18:09:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:34:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码