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

淘宝网站建设seo确定关键词

淘宝网站建设,seo确定关键词,四川建设厅官方网站证书查询,丰台网站建设推广线程间通信:wait和notify 1、Object的wait和notify方法 Java中的Object类提供了两个重要的方法,用于线程间的通信和同步:wait()方法和notify()方法 wait()方法的定义 方法签名:public final void wait() throws InterruptedEx…

线程间通信:wait和notify

1、Object的wait和notify方法

Java中的Object类提供了两个重要的方法,用于线程间的通信和同步:wait()方法和notify()方法

wait()方法的定义

  • 方法签名public final void wait() throws InterruptedException
  • 功能:使当前线程等待,直到其他线程调用此对象的notify()notifyAll()方法。换句话说,当一个线程调用某个对象的wait()方法时,它会进入这个对象的等待池中,并释放该对象的对象锁(监视器)。
  • 使用条件:必须在同步块(synchronized block)或同步方法中调用,因为当前线程必须拥有该对象的监视器。如果试图在非同步环境中调用wait(),会抛出IllegalMonitorStateException异常。

notify()方法的定义

  • 方法签名public final void notify()
  • 功能:唤醒在此对象监视器上等待的单个线程。如果有多个线程都在此对象上等待,则选择一个线程进行唤醒,选择是任意性的。注意,调用notify()方法并不会立即使等待线程从wait()返回,而是需要等到当前线程释放了该对象的监视器之后,被选中的等待线程才有机会获得该监视器并继续执行。
  • 使用条件:也必须在同步块或同步方法中调用,因为当前线程必须拥有该对象的监视器。如果试图在非同步环境中调用notify(),也会抛出IllegalMonitorStateException异常。

2、消费者和生产者代码

商店类

import java.util.ArrayList;
import java.util.List;public class Store {public Store(){}private List<String> apples = new ArrayList<>();private Object o = new Object();public void custom(){synchronized(o){if (apples.size() == 0) {try {o.wait();} catch (InterruptedException e) {e.printStackTrace();}}String apple = apples.get(apples.size()-1);System.out.println("消费者消费了:"+apple);apples.remove(0);o.notify();}}public void product(String apple){synchronized(o){if (apples.size() > 0) {try {o.wait();} catch (InterruptedException e) {e.printStackTrace();}}apples.add(apple);System.out.println("生产者生产了:"+apple);o.notify();}}}

消费者类

public class Customer implements Runnable{private Store store;public Customer(Store store){this.store = store;}@Overridepublic void run() {for (int i = 0; i < 100; i++) {store.custom();                }}}

生产者类

public class Producter implements Runnable{private Store store;public Producter(Store store){this.store = store;}@Overridepublic void run() {for (int i = 0; i < 100; i++) {store.product("苹果"+i);}}}

执行类

import java.util.ArrayList;
import java.util.List;public class CustomerProducter {/*** 1. 生产者:没有产品,就要开始生产,生产完毕通知消费者,有产品等待消费者消费* 2. 消费者:有产品,开始消费,消费完毕通知生产者,没有产品等待生产者生产* 3. 缓冲区* */public static void main(String[] args) {Store store = new Store();Customer customer = new Customer(store);Producter producter = new Producter(store);new Thread(customer).start();new Thread(producter).start();}}

执行结果

生产者生产了:苹果0
消费者消费了:苹果0
生产者生产了:苹果1
消费者消费了:苹果1
...
生产者生产了:苹果98
消费者消费了:苹果98
生产者生产了:苹果99
消费者消费了:苹果99
http://www.hrbkazy.com/news/50625.html

相关文章:

  • 网站购物流程模块怎么实现阳江seo
  • 搜狗怎么做网站无锡seo优化
  • 北京别墅设计网站上海关键词seo
  • 邯郸市疫情快速排名优化怎么样
  • WordPress页面模板功能不见了泉州seo
  • 做视频发哪个网站赚钱佛山网站建设十年乐云seo
  • 网站空间免费 优帮云sem专员
  • 云南网上办事大厅官网关键词优化公司排名
  • 网站排名软件利搜怎么样seo网站推广与优化方案
  • 水印在线制作网站国内最好的搜索引擎
  • 上市公司协会网站建设汇报电商软文范例100字
  • 网站建设 提升和扩大沧州百度推广公司
  • 程序员兼职接单平台南昌seo服务
  • 企业网站制作广东seo推广
  • 网站图片怎么做才有吸引力从事网络营销的公司
  • 推广普通话活动方案和总结济南seo网站排名关键词优化
  • 交河做网站b站推广
  • 做网站卖广告如何在百度发布短视频
  • 网站建设需要的人才如何推广自己的店铺?
  • 吉安网站建设全网引擎搜索
  • 修改wordpress文章发布页面模板佛山网站优化软件
  • 官方网站 优帮云网络运营师资格证
  • 交易网站怎么做近期重大新闻事件
  • 又拍网站怎么做的推广app是什么工作
  • 校园社交网站怎么做中牟网络推广
  • 怎么用外网校内网站做英语信息推广平台有哪些
  • 做网站路由器映射外网ip营销的概念
  • 网站备案登陆用户名是什么关键词挖掘网站
  • xampp安装网站模板抖音搜索引擎优化
  • 织梦做双语网站何鹏seo