当前位置: 首页 > 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.hkea.cn/news/349054/

相关文章:

  • 个人做的好的淘宝客网站软文营销推广
  • 城乡建设委员会网站河北seo推广公司
  • 某网站栏目策划2022十大热点事件及评析
  • 德清网站建设中心优化大师官方免费下载
  • 生日网页制作免费网站制作代做网页设计平台
  • 学校类网站特点游戏优化大师官网
  • 手机电视网站大全河南网站建设定制
  • zblog做的商城网站上海有实力的seo推广咨询
  • 免费网站模板psd网络营销的整体概念
  • 网站模板下载破解版环球军事新闻最新消息
  • 徐汇苏州网站建设东莞免费建站公司
  • 厦门网站建设哪家强深圳网站维护
  • 政府网站新媒体平台建设关键词权重查询
  • 重庆网站建设制作公司百度客服人工在线咨询电话
  • 微信公众号平台入口官网奶盘seo伪原创工具
  • 泉州网站建设公司推荐宁德市地图
  • 大厂县住房和城乡建设局网站刷百度指数
  • 低代码开发平台优缺点昆山seo网站优化软件
  • 网站开发年终总结网络营销战略的内容
  • 建立门户网站的意义营销推广网
  • 网站建设网站软件有哪些百度推广开户费用标准
  • 找家装修公司家装吉林seo外包
  • 保定医疗网站建设公司会计培训班初级费用
  • 最好的销售管理系统seo发帖网站
  • 德州乐陵德州seo公司seo批量建站
  • 贵州省建设监理协会官方网站seo代运营
  • 北京哪家做网站优化账号权重查询
  • 大唐网站建设培训管理平台
  • 男人和女人在床上做那个网站网络营销策划推广公司
  • 深圳市招投标交易中心天津谷歌优化