Bootstrap

【JUC 并发编程】JUC 基本概念

在这里插入图片描述

❤️ 个人主页:水滴技术
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬
🌸 订阅专栏:Java 教程:从入门到精通


大家好,我是水滴~~

JUC 是什么

JUC 是 java.util.concurrent 工具包的简写,从 JDK1.5 开始出现,它是一个用于处理线程的工具包,包含了很多在并发编程中用到的类和接口。

在这里插入图片描述
该工具包的作者是 Doug Lea(道格·利),就是下面这位老大爷:
在这里插入图片描述

进程和线程

进程(Process)

进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

在计算机中打开一个软件,就会开启一个进程,例如:浏览器、微信、QQ等。
在这里插入图片描述

线程(Thread)

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

进程与线程的区别

进程与线程其本质的区别在于:每个进程拥有自己的一整套变量,而线程则共享变量。共享变量使线程之间的通信比进程之间的通信更有效、更容易。
并且线程比进程更“轻量级”,创建和销毁一个线程比启动新进程的开销要小得多。

串行、并行和并发

串行(Serial)

串行表示所有任务都要按先后顺序一个个进行。串行意味着必须执行完一个任务才能执行下一个任务。

并行(Parallel)

并行可以同时执行多个任务,并访问不同的资源,它们互不干扰。

并发(Concurrent)

并发也是“同时”执行多个任务,但它们访问的是同一个资源。从宏观角度看他们是“同时”执行的,但从微观角度上,只有获得“时间片段”的任务在执行。

下面一张图可以很好的理解并发和并行的区别:
在这里插入图片描述


热门专栏

👍 《IDEA 教程:从入门到精通

👍 《Java 教程:从入门到精通

👍 《MySQL 教程:从入门到精通

;