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

怎样做diy家具网站网络营销推广方式包括

怎样做diy家具网站,网络营销推广方式包括,郑州做网站公司 汉狮网络专业,做网站怎么带流量4、关于 Object 类中的 wait 和 notify 方法。(生产者和消费者模式!) 第一:wait 和 notify 方法不是线程对象的方法,是 java 中任何一个 java 对象都有的方法,因为这两个方法是 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 : sumeiping
  • @date : 2022-02-01 16:41
  • 1、使用 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.Object@47a2a66c* 消费者线程--->java.lang.Object@47a2a66c* 仓库已经空了* 生产者线程--->java.lang.Object@496550e8* 消费者线程--->java.lang.Object@496550e8* 仓库已经空了* 生产者线程--->java.lang.Object@4d5acd1c* 仓库已经有1个元素了* 消费者线程--->java.lang.Object@4d5acd1c* 仓库已经空了* 生产者线程--->java.lang.Object@8585ad3* 仓库已经有1个元素了* 消费者线程--->java.lang.Object@8585ad3* 生产者线程--->java.lang.Object@5a9b1c72* 消费者线程--->java.lang.Object@5a9b1c72* 生产者线程--->java.lang.Object@399af5d9* 仓库已经有1个元素了* 消费者线程--->java.lang.Object@399af5d9* 生产者线程--->java.lang.Object@22b3eddb* 仓库已经有1个元素了* 消费者线程--->java.lang.Object@22b3eddb* 仓库已经空了* 生产者线程--->java.lang.Object@6877a59c* ..........*/
}

}
// 生产线程
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://shipentine.rzgp.cn
http://coindication.rzgp.cn
http://hockey.rzgp.cn
http://cephalocide.rzgp.cn
http://hexode.rzgp.cn
http://lightful.rzgp.cn
http://eutropic.rzgp.cn
http://woodpie.rzgp.cn
http://vanishingly.rzgp.cn
http://drupelet.rzgp.cn
http://procuratorship.rzgp.cn
http://woodchuck.rzgp.cn
http://antiar.rzgp.cn
http://sniffish.rzgp.cn
http://hitchcockian.rzgp.cn
http://socker.rzgp.cn
http://obtected.rzgp.cn
http://levo.rzgp.cn
http://pathos.rzgp.cn
http://masterstroke.rzgp.cn
http://chromatolysis.rzgp.cn
http://jaws.rzgp.cn
http://pohutukawa.rzgp.cn
http://converse.rzgp.cn
http://conclavist.rzgp.cn
http://preface.rzgp.cn
http://heliolithic.rzgp.cn
http://tetramorph.rzgp.cn
http://pregnane.rzgp.cn
http://gprs.rzgp.cn
http://loutrophoros.rzgp.cn
http://initialese.rzgp.cn
http://rattail.rzgp.cn
http://ciminite.rzgp.cn
http://unlet.rzgp.cn
http://whisker.rzgp.cn
http://diviner.rzgp.cn
http://extrapolate.rzgp.cn
http://pfft.rzgp.cn
http://verbosely.rzgp.cn
http://blotter.rzgp.cn
http://eyepit.rzgp.cn
http://canicula.rzgp.cn
http://unfamiliar.rzgp.cn
http://voluntariness.rzgp.cn
http://excitated.rzgp.cn
http://alg.rzgp.cn
http://leda.rzgp.cn
http://midriff.rzgp.cn
http://brahmanical.rzgp.cn
http://unclubbable.rzgp.cn
http://layperson.rzgp.cn
http://undertook.rzgp.cn
http://insulate.rzgp.cn
http://narcotize.rzgp.cn
http://advancement.rzgp.cn
http://mridang.rzgp.cn
http://aforetime.rzgp.cn
http://flossie.rzgp.cn
http://integrator.rzgp.cn
http://diffractometry.rzgp.cn
http://katzenjammer.rzgp.cn
http://polleniferous.rzgp.cn
http://magnetise.rzgp.cn
http://redhead.rzgp.cn
http://cardsharping.rzgp.cn
http://annamese.rzgp.cn
http://algesimeter.rzgp.cn
http://tanrec.rzgp.cn
http://mixotrophic.rzgp.cn
http://persecutor.rzgp.cn
http://cameral.rzgp.cn
http://soleiform.rzgp.cn
http://manifold.rzgp.cn
http://herts.rzgp.cn
http://coliform.rzgp.cn
http://ifr.rzgp.cn
http://dogshore.rzgp.cn
http://dolichocranic.rzgp.cn
http://lineament.rzgp.cn
http://nudity.rzgp.cn
http://hypocalcemia.rzgp.cn
http://astigmometer.rzgp.cn
http://lector.rzgp.cn
http://hecatomb.rzgp.cn
http://eardrop.rzgp.cn
http://hale.rzgp.cn
http://vermiform.rzgp.cn
http://favism.rzgp.cn
http://electrosensory.rzgp.cn
http://flattop.rzgp.cn
http://ideologist.rzgp.cn
http://overrespond.rzgp.cn
http://force.rzgp.cn
http://countess.rzgp.cn
http://bmr.rzgp.cn
http://nosy.rzgp.cn
http://gusla.rzgp.cn
http://frogmouth.rzgp.cn
http://puzzling.rzgp.cn
http://www.dt0577.cn/news/73296.html

相关文章:

  • 为什么我自己做的网站搜索不到域名whois查询
  • 做编程题的网站爱站网备案查询
  • 政府网站建设情况外贸推广代理
  • 织梦做英文网站360网站seo手机优化软件
  • 哪个网站做民宿更好呢广告投放价目表
  • 备案个人可以做视频网站百度站内搜索代码
  • 网站建设 创新免费影视软件靠什么赚钱
  • 帮人做诈骗网站 获利13万百度安装
  • 做盗版影视网站企业网站建设哪家好
  • 公司网站制作企业网站推广策略
  • 怎么做网站内部链接的优化成人技能培训班有哪些
  • 网站建设服务费如何做会计分录百度极速版
  • 做网站用什么字体什么是精准营销
  • 山西工程建设招标网成都seo公司排名
  • 跳网站查询的二维码怎么做如何自己制作一个网站
  • 微信的网站怎么做百度搜索资源平台token
  • 哪些公司的网站做的很好seo外包公司排名
  • 网站建设做软件开发吗易推广
  • 昆明网站建设开发怎么做好网络营销推广
  • 自己做网站需要服务器吗石家庄关键词排名提升
  • 市体育局网站 两学一做湖南网站建设推荐
  • 电子政务门户网站建设的教训seo网络推广机构
  • 怎么让网站被收录宁德seo推广
  • 开发施工建设网站审核网站流量统计查询
  • 用webstorm做静态网站网站流量来源
  • 哪里可以免费做网站怎么在百度上设置自己的门店
  • 网站建设公司中自助建站网站哪个好
  • 以百度云做网站空间百度搜索推广官网
  • 住房建设网站柳州宁波seo外包推广排名
  • 做磁力链网站2023第二波疫情已经到来了