欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于java并发需要知道的几个概念(一)

程序员文章站 2022-04-13 21:31:34
...
最近在看《Java高并发程序设计》这本书,了解一些并发相关的概念,分享一下自己的理解

同步:方法调用一旦开始,方法调用者必须等待结果返回后,才能继续执行后续行为

例子:老师上课提问小明同学,要求小明同学立即给予解答,这时老师对小明就是同步操作,老师需要等待小明给予解答,才能继续后续工作

异步:方法调用一旦开始,方法调用就会立即返回,调用者可以继续后续操作。真正方法执行会另起一个线程执行。整个过程,不会阻碍方法调用者的工作

例子:老师下课前向学生布置晚上的家庭作业,老师到第二天上班时,检车同学的作业即可,而不需要一直等待学生完成家庭作业才能下班。这就属于异步


并发:多个任务"交替"执行,多个任务执行可能出现串行。
cpu执行时,若只有一个cpu,多个任务之间就会交替执行,这种情况下就是并发

并行:真正意义上的"并发"执行
cpu执行时,若有多个cpu,多个任务之间就不会交替执行,而是一起执行,这种情况下就是并行

临界区:公共资源可以被多个线程使用,但是每一次,只有一个线程可以使用它,一旦被占用,其他线程想要使用,只能等待

例子:家里只有一个电视,妈妈想看综艺节目,爸爸想看体育节目,我想看动画片,但是电视只能播放一个节目,妈妈正在看综艺节目,我和爸爸只能等妈妈看完才能看自己想看的节目。 电视就是公共资源