首页 > 编程语言 >【JUC】2-一把“锁”两个“并”三个“程”(JAVA多线程相关概念)

【JUC】2-一把“锁”两个“并”三个“程”(JAVA多线程相关概念)

时间:2024-06-02 10:32:24浏览次数:17  
标签:JUC JAVA Monitor 多个 对象 管程 线程 进程 多线程

1、一把锁 (synchronized)

2、两个并(并发 并行)

并发是在同一实体上的多个事件,是在一台处理器上同时处理多个任务,同一时刻,其实是只有一个时间在发生

并行是在不同实体上的多个事件,是在多台处理器上同时处理多个任务,同一时刻,大家真的都在做事情,互不影响

3、三个程(进程 线程 管程)

进程

简单的说,在系统中运行中的一个应用程序就是一个进程,每一个进程都有它自己的内存空间和系统资源

线程

也被称为轻量级进程,在同一个进程内会有1个或多个线程,是大多数操作系统进行时序调度的基本单元

管程

Monitor对象,也就是我们平时说的锁。

Monitor其实是一种同步机制,它的义务是保证(同一时间)只有一个线程可以访问被保护的数据和代码。

JVM中同步是基于进入和退出监视器对象来实现的,每个对象实例都会有一个Monitor对象

Monitor对象会和Java对象一同创建和销毁,它底层是由C++语言来实现的

 

执行线程就要求先成功持有管程,然后才能执行方法,最后当方法完成(无论是否正常完成)时释放管程。在方法执行期间,执行线程持有了管程,其他任何线程都无法再获取到同一个管程。

标签:JUC,JAVA,Monitor,多个,对象,管程,线程,进程,多线程
From: https://www.cnblogs.com/zhaohan258/p/18226861

相关文章

  • linux 安装字体解决JAVA图形中文乱码问题
    1、在C:\Windows\Fonts\找到想要安装到linux的字体;如微软雅黑字体,它们可能的文件包括:2、将相关字体文件复制到指定文件夹“/usr/share/fonts/”3、执行字体安装:cd/usr/share/fonts/mkfontscalemkfontdir如果提示 mkfontscale:commandnotfound,需自行安装 yuminstallm......
  • linux 系统上图形生成错误 java.lang.NoClassDefFoundError: Could not initialize cl
    错误信息:02-Jun-202409:11:09.421SEVERE[Thread-32]org.apache.catalina.core.StandardWrapperValve.invokeServlet.service()forservlet[springDispatcherServlet]incontextwithpath[]threwexception[Handlerdispatchfailed;nestedexceptionisjava.lang.......
  • 【精品毕设】基于JavaEE的模拟火车售票系统设计与实现
                                                一可行性研究1.概述用户:某省市乃至全国开发单位:浙江海洋学院D02计算机(2)班 何升高系统名称:火车售票系统2.系统目标 在2005年5月1日之前,开发一个火车售票系统,实现对火车......
  • java动态获取实体类的字段
    1.使用反射(Reflection)API来动态地获取实体类的字段在Java中,我们可以使用反射(Reflection)API来动态地获取实体类的字段。以下是一个详细的代码示例,演示了如何获取一个实体类的所有字段:首先,我们定义一个简单的实体类(EntityClass):publicclassPerson{privateStringname;......
  • java中判断String类型为空和null的方法
    1.判断一个String类型的变量是否为空(即长度为0)或者为null在Java中,判断一个String类型的变量是否为空(即长度为0)或者为null,通常需要使用两个条件语句来进行检查。这是因为null表示变量没有引用任何对象,而空字符串("")表示变量引用了一个没有内容的字符串对象。下面是一个具体的代码......
  • 【JAVA】快速遍历map集合
    1.使用entrySet()方法【推荐】2.直接使用values()方法获取所有value值组成的集合3.使用keySet()方法和getValue方法4.使用迭代器iterator5.使用增强for的Lambda表达式......
  • C++多线程原理详解
    学习C++多线程时,我有如下疑问:mutex的lock和unlock做了什么?mutex、lock_guard、unique_lock,它们之间的关系是什么?condition_variable中的wait做了什么?带着这些疑问,我查阅了一些资料,整理出本文。文章目录一、mutex二、lock_guard三、unique_lock四、condition......
  • java编辑器中如何调试程序?
    目录如何调试java程序?待续、更新中如何调试java程序?1看错误信息2相应位置输入输出信息:System.out.println("测试信息1");以此查看哪条语句未进行输入待续、更新中1顿号、:先使用ctrl+.,再使用一遍切回2下标:21==2~1~3上标:......
  • Java 日志
    概述Java日志系统中,有两个组件协同工作一个是负责日志输出的框架,如Logback、Log4j2一个是日志接口,提供统一的日志记录接口,如slf4j、Apachecommons-logging日志接口必须与日志输出框架集成后才能正常工作,集成时,需要相应的桥接包,以slf4j为例,集成log4j2时需要如下包slf4j-a......
  • 【Redis】 使用Java操作Redis的客户端
    文章目录......