全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

Java领域中的线程机制-管程与线程

发布时间:2022-08-03 16:21:48
发布人:qyf

管程与线程

  首先,管程(Monitor)就是一对monitorenter和monitorexit指令组成的一个对象监视器。任何线程想要访问该资源,就要排队进入监控范围。进入之后,接受检查,不符合条件,则要继续等待,直到被通知,然后继续进入监视器。

  在Java中,每个加锁的对象都绑定着一个管程(监视器)。首先,线程访问加锁对象,就是去拥有一个监视器的过程,所有线程访问共享资源,都需要先拥有监视器。其次,监视器至少有两个等待队列:一个是进入监视器的等待队列,一个是条件变量对应的等待队列。最后,当监视器要求的条件满足后,位于条件变量下等待的线程需要重新排队,等待通知再进入监视器。

  其次,线程(Thread)是进程(Process)中的运行单位,可以把线程看作轻量级的进程。

  线程按照操作系统和应用程序两个层次来分类,主要分为 内核线程(Kernel Thread)和用户(应用线程,Applciation Thread)线程(User Thread) 。

  在Java领域中,线程可以分为:Java应用程序层线程(Java Application Thread ),Java虚拟机层线程(Java JVM Thread )和操作系统层线程(OS Thread)。

  其中,Java层到内层层的线程创建的大致流程:java.lang.Thread(Java应用程序层)—>Java Thread(JVM 层)->OS Thread(操作系统层)->pthread(根据操作系统的情况而定)->内核线程(Kernel Thread)。

  另外,线程按照映射方式来看,主要可以分为:多对一映射(用户级方式),一对一映射(内核级方式) 和多对多映射(组合方式)3种方式。

  Java 语言中线程共有六种状态,分别是:NEW(初始化状态)RUNNABLE(可运行 / 运行状态)BLOCKED(阻塞状态)WAITING(无时限等待)TIMED_WAITING(有时限等待)TERMINATED(终止状态)。

  Java中实现线程的方式:继承 Thread 对象:extends Thread,实现 Runnable 接口(无返回值):implements Runnable ,实现Callable 接口(有返回值):implements Callable,基于线程池方式创建等。

  常见线程的调度模型目前主要分为两种:(分时)协同式调度模型和抢占式调度模型,Java的线程调度也是使用抢占式调度模型,因此Java的线程都有优先级。

  Java 线程的调度机制由 JVM 实现,Java定义了 Thread.MIN_PRIORITY、Thread.NORM PRIORITY和 Thread.MAXPRIORITY这3个常量,分别代表最小优先级值(1)、默认优先级值(5)和最大优先级值(10)。

  综上所述,我想关于Java中的线程机制,看到这个地方,你一定乐然于胸,希望未来的我们更加优秀!更多关于“java培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。

相关文章

Cloud-IDE 是什么?

Cloud-IDE 是什么?

2023-10-14
主机和端系统之间有什么不同?

主机和端系统之间有什么不同?

2023-10-14
进程和线程有什么联系和区别?

进程和线程有什么联系和区别?

2023-10-14
结束任务管理器快捷键是什么?

结束任务管理器快捷键是什么?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取