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

有成功案例的网站客户评论 网站建设

有成功案例的网站,客户评论 网站建设,群晖装wordpress,兴平市住房和城乡建设局门户网站4、关于 Object 类中的 wait 和 notify 方法。#xff08;生产者和消费者模式#xff01;#xff09; 第一#xff1a;wait 和 notify 方法不是线程对象的方法#xff0c;是 java 中任何一个 java 对象都有的方法#xff0c;因为这两个方法是 Object 类中自带的。 wait 方…4、关于 Object 类中的 wait 和 notify 方法。生产者和消费者模式 第一wait 和 notify 方法不是线程对象的方法是 java 中任何一个 java 对象都有的方法因为这两个方法是 Object 类中自带的。 wait 方法和 notify 方法不是通过线程对象调用的。 第二wait() 方法作用 Object o new Object(); o.wait(); 表示让正在 o 对象上活动的线程进入等待状态无期限等待直到被唤醒为止。 o.wait(); 方法的调用会让“当前线程正在 o 对象上活动的线程”进入等待状态。 第三notify方法作用 Object o new Object(); o.notify(); 表示唤醒正在 o 对象上等待的线程。 notifyAll() 方法 这个方法是唤醒 o 对象上处于等待的所有线程。例 package com.su.test.threadtest; import java.util.ArrayList; import java.util.List; /** author : sumeipingdate : 2022-02-01 16:411、使用 wait 方法和 notify 方法实现“生产者和消费者模式”2、什么是“生产者和消费者模式” 生产线程负责生产消费线程负责消费。生产线程和消费线程要达到均衡。这是一种特殊的业务需求在这种特殊的情况下要使用 wait 方法和 notify 方法。3、wait 和 notify 方法不是线程对象的方法是普通 java 对象都有的方法。java.lang.Object 根类4、wait 方法和 notify 方法建立在线程同步的基础之上。因为多线程要同时操作一个仓库。有线程安全问题。5、wait 方法作用o.wait() 让正在 o 对象上活动的线程 t 进入等待状态并且释放掉 t 线程之前占有的 o 对象的锁。6、notify 方法作用o.notify() 让正在 o 对象上等待的线程唤醒只是通知不会释放 o 对象上之前占有的锁。7、模拟这样一个需求 仓库我们采用 List 集合。List 集合中假设只能存储 1 个元素。1 个元素就表示仓库满了。如果 List 集合中元素个数是 0就表示仓库空了。保证 List 集合中永远都是最多存储 1 个元素。必须做到这种效果生产 1 个消费 1 个。*/ public class WaitNotify { public static void main(String[] args) { // 创建一个仓库对象共享的。 List list new ArrayList(); // 创建2个线程对象// 生产者线程对象Thread t1 new Thread(new Producer(list));t1.setName(生产者线程);// 消费者线程对象Thread t2 new Thread(new Consumer(list));t2.setName(消费者线程);// 启动线程t1.start();t2.start();/*** 生产者线程---java.lang.Object47a2a66c* 消费者线程---java.lang.Object47a2a66c* 仓库已经空了* 生产者线程---java.lang.Object496550e8* 消费者线程---java.lang.Object496550e8* 仓库已经空了* 生产者线程---java.lang.Object4d5acd1c* 仓库已经有1个元素了* 消费者线程---java.lang.Object4d5acd1c* 仓库已经空了* 生产者线程---java.lang.Object8585ad3* 仓库已经有1个元素了* 消费者线程---java.lang.Object8585ad3* 生产者线程---java.lang.Object5a9b1c72* 消费者线程---java.lang.Object5a9b1c72* 生产者线程---java.lang.Object399af5d9* 仓库已经有1个元素了* 消费者线程---java.lang.Object399af5d9* 生产者线程---java.lang.Object22b3eddb* 仓库已经有1个元素了* 消费者线程---java.lang.Object22b3eddb* 仓库已经空了* 生产者线程---java.lang.Object6877a59c* ..........*/ }} // 生产线程 class Producer implements Runnable{ // 仓库 private List list; public Producer(){} public Producer(List list) {this.list list; }Override public void run() {// 一直生产使用死循环来模拟一直生产while (true){// 给仓库对象list加锁synchronized (list){if (list.size() 0){ // 大于 0说明仓库中已经有 1 个元素了。System.out.println(仓库已经有1个元素了);try {list.wait(); // 当线程进入等待状态并且释放 Producer 之前占有的 list 集合的锁。} catch (InterruptedException e) {e.printStackTrace();}}// 程序执行到这来说明仓库是空的可以生产Object obj new Object();list.add(obj);System.out.println(Thread.currentThread().getName() --- obj);try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}// 唤醒消费者进行消费//list.notify();list.notifyAll();}} }} // 消费线程 class Consumer implements Runnable{ private List list; public Consumer(){} public Consumer(List list){this.list list; }Override public void run() {// 一直消费while (true){synchronized (list){if (list.size() 0){System.out.println(仓库已经空了);try {list.wait(); // 仓库已经空了。消费者线程等待释放掉 list 集合的锁} catch (InterruptedException e) {e.printStackTrace();}}// 程序执行到这里说明仓库中有数据可以消费Object obj list.remove(0);System.out.println(Thread.currentThread().getName() --- obj);try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}// 唤醒生产者进行生产//list.notify();list.notifyAll();}} }}
http://www.zqtcl.cn/news/822895/

相关文章:

  • 南京建设机械网站建设银行网站解除绑定
  • 厚街公司网站建设wordpress发邮件更新
  • wap网站制作网络设计公司经营范围
  • 织梦网站被做跳转还被删除文件第三方电子商务平台有哪些
  • 财经网站源码 织梦游戏ui培训
  • 石家庄站布局图网站建设公司怎么
  • 电商网站建设选迅法网东莞系统网站建设
  • 网站栏目 英文wordpress 情侣
  • 济南市历下区建设局官方网站wordpress 作者页
  • 武进建设银行网站首页大型网站建设哪家快
  • 做网站用vs怎么自己写代码做网站
  • 网站建设产品需求文档技术培训学校机构
  • 简单个人网站源码石景山网站seo优化排名
  • 用花生做网站房地产电子商务的网站建设
  • 宁波网站建设团队sem竞价托管多少钱
  • 工艺品东莞网站建设营销助手app
  • 怎么添加网站 多少钱wordpress 在线教育模板
  • 做鞋的垂直网站小型购物网站模板
  • 石家庄公司网站建设网站建设技术难点
  • 阿里云能放企业网站吗建设网站的建设费用包括什么
  • 网站对公司的作用是什么初学者学做网站用什么软件
  • 网站的建设模式高校后勤网站建设要求
  • 网站的导航栏怎么做的网站seo诊断报告怎么写
  • elementui 做的网站写网站编程需要什么
  • 一站式网站建设顾问小程序小游戏开发
  • 网站导航html网站开发从哪开始学
  • 成立网站是不是需要先成立公司上海今天新闻发布会直播
  • 企业只有建立了自己的网站网站建设骗子
  • 凡科 360免费建站培训网页制作机构
  • 做网站用什么后缀好法人变更在哪个网站做公示