千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Java领域中的线程机制-管程与线程

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

来源:千锋教育
发布人:qyf
时间: 2022-08-03 16:21:48 1659514908

管程与线程

  首先,管程(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万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT