当前位置: 首页 > news >正文

jsp做新闻系统门户网站如何软件网站优化公司

jsp做新闻系统门户网站,如何软件网站优化公司,广西住房建设部网站,男女做爰高清免费网站目录 一、什么是监视器(Monitor)二、监视器的组成部分三、线程的状态转换四、总结 一、什么是监视器(Monitor) 在Java中,监视器(Monitor)是用来实现线程同步的一种机制。每个Java对象都有一个与…

目录

    • 一、什么是监视器(Monitor)
    • 二、监视器的组成部分
    • 三、线程的状态转换
    • 四、总结

一、什么是监视器(Monitor)

在Java中,监视器(Monitor)是用来实现线程同步的一种机制。每个Java对象都有一个与之关联的监视器,线程可以通过synchronized关键字来获取和释放对象的监视器。监视器的主要作用是确保在同一时刻只有一个线程可以执行同步块或同步方法,从而实现线程的互斥访问。

二、监视器的组成部分

监视器通常包含以下三个关键部分:

  1. 入口集(Entry List):等待获取监视器锁的线程集合。
  2. 所有者线程(Owner Thread):当前持有监视器锁的线程。
  3. 等待集(Wait Set):调用了wait()方法并进入等待状态的线程集合。

线程等待的地方

入口集(Entry List):线程在尝试进入同步块或同步方法时,如果无法获取监视器锁,它们会进入入口集等待。这些线程处于阻塞状态,等待获取监视器锁。

等待集(Wait Set):线程在调用wait()方法后,会释放监视器锁并进入等待集。这些线程处于等待状态,直到被其他线程通过notify()或notifyAll()方法唤醒。

三、线程的状态转换

线程状态转换示意图
以下是线程在不同状态之间转换的过程示意图:

  • 新建状态(New):线程被创建,但尚未启动。
  • 可运行状态(Runnable):线程已经启动,可以运行但不一定正在运行。
  • 阻塞状态(Blocked):线程在入口集中,等待获取监视器锁。
  • 等待状态(Waiting):线程在等待集中,等待其他线程通过notify()或notifyAll()唤醒。
  • 超时等待状态(Timed Waiting):线程在等待集中,等待特定时间后被唤醒。
  • 终止状态(Terminated):线程已经结束执行。

示例代码解释
我们通过一个示例代码来解释线程在不同状态之间的转换:

public class MonitorExample {private static final Object lock = new Object();public static void main(String[] args) {Thread thread1 = new Thread(() -> {synchronized (lock) {try {System.out.println("Thread 1: Acquired lock, entering wait state.");lock.wait();System.out.println("Thread 1: Woken up, reacquired lock.");} catch (InterruptedException e) {Thread.currentThread().interrupt();}}});Thread thread2 = new Thread(() -> {synchronized (lock) {System.out.println("Thread 2: Acquired lock, notifying.");lock.notify();System.out.println("Thread 2: Notified, releasing lock.");}});thread1.start();try {Thread.sleep(100); // Ensure thread1 starts first and enters wait state} catch (InterruptedException e) {Thread.currentThread().interrupt();}thread2.start();}
}

过程解释
Thread 1 获取监视器锁:

Thread 1 进入同步块并获取监视器锁。
调用lock.wait()方法,Thread 1释放监视器锁并进入等待集。
Thread 2 获取监视器锁:

Thread 2 进入同步块并获取监视器锁(此时Thread 1已在等待集)。
调用lock.notify()方法,唤醒等待集中的一个线程(即Thread 1)。
Thread 2 释放监视器锁:

Thread 2 退出同步块,释放监视器锁。
Thread 1 重新获取监视器锁:

被唤醒的Thread 1从等待集中移动到锁池,重新竞争获取监视器锁。
Thread 1成功获取监视器锁后,从wait()方法返回,继续执行后续代码。

四、总结

监视器(Monitor):用于实现线程同步,每个Java对象都有一个监视器。

入口集(Entry List):线程在尝试进入同步块或同步方法时,如果无法获取监视器锁,会进入入口集等待。

等待集(Wait Set):线程在调用wait()方法后,会释放监视器锁并进入等待集,等待被唤醒。

状态转换:线程在不同状态之间转换,包括新建、可运行、阻塞、等待、超时等待和终止状态。

http://www.dt0577.cn/news/13100.html

相关文章:

  • 手机网站建设服务商seo168小视频
  • 做彩投网站犯法吗郑州关键词排名顾问
  • 家里的电脑怎样做网站赚钱品牌线上推广方案
  • 广州网站优化推广百度新闻官网首页
  • 南京专业网站建设网络营销软件大全
  • 垂直网站 开源码seop
  • 网站建设技术文档关键词点击排名系统
  • 襄州区城乡建设局网站简述seo的基本步骤
  • 民非企业网站建设费怎么记账图片识别搜索引擎
  • 外贸生意做哪个网站好腾讯新闻潍坊疫情
  • 火车票网站开发seo搜索引擎优化书籍
  • 全国网站建设公司seo网站技术培训
  • 门户网站系统业务流程图seo单词优化
  • 做板材外贸一般用哪个网站网站关键词排名优化推广软件
  • 丰台网站公安备案宁波网络推广方法
  • 详述网站建设的过程网络营销公司排行榜
  • 做bt网站安全不简单的个人主页网站制作
  • 汉阳网站推广优化百度官方首页
  • 网站如何优化排名软件做百度推广效果怎么样
  • 免费的网站域名申请关键词分析工具有哪些
  • 网页跳转链接怎么制作seo整站优化更能准确获得客户
  • 阿里云做网站多少钱免费网站免费
  • 公众号推广怎么做seo词条
  • 企业做网站价格重庆网站网络推广
  • 启动 wordpress 博客网站seo站外优化
  • 找郴州一家做网站的公司电话引流推广广告怎么写
  • 东莞房产网宁波seo链接优化
  • 四川城乡住房城乡建设厅网站网络优化的内容包括哪些
  • 做网站销售 优帮云北京seo如何排名
  • 做网站哪家公司好免费网络推广渠道