综合实战:生产者与消费者(利用Object类解决重复操作)
来源:互联网 发布:python 函数 传入list 编辑:程序博客网 时间:2024/06/05 17:00
上幹貨之前給大家分享個面試題。
如下:請問sleep() 和 wait() 的區別?
答案在最下面。
class Info {private String name;private String description;private boolean flag=true;public synchronized void set(String name, String description) {if(flag==false){try {super.wait();} catch (InterruptedException e) {e.printStackTrace();}}this.name = name;try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}this.description = description;flag=false; super.notify();}public synchronized void get() {if(flag==true){try {super.wait();} catch (InterruptedException e) {e.printStackTrace();}}System.out.println(this.name + "---------->" + this.description);flag=true;super.notify();}}class Pr implements Runnable {private Info info;public Pr(Info info) {this.info = info;}@Overridepublic void run() {for (int i = 0; i < 50; i++) {if (i % 2 == 0) {this.info.set("TOM", ":BOY");} else {this.info.set("MARY", ":GIRY");}}}}class Cr implements Runnable {private Info info;public Cr(Info info) {this.info = info;}@Overridepublic void run() {for (int i = 0; i < 50; i++) {this.info.get();}}}public class Demo {public static void main(String[] args) {Info info = new Info();Pr pr = new Pr(info);Cr cr = new Cr(info);new Thread(pr).start();new Thread(cr).start();}}
答:1.sleep()是Thread類定義的中的方法,在休眠一段時間自己喚醒。
2.wait () 是Object類定義的方法,表示綫程需要等待執行,并且衹能通過notify()、notifyAll()方法來進行喚醒。
阅读全文
0 0
- 综合实战:生产者与消费者(利用Object类解决重复操作)
- 利用object.wait()和实现生产者和消费者模式
- 使用互斥锁解决生产者与消费者问题
- 多线程解决生产者与消费者问题
- 生产者与消费者(C#)
- 线程(消费者与生产者)
- 生产者与消费者(二)
- 多线程操作案例---生产者与消费者
- 使用Object.wait与notify实现生产者与消费者模式
- 生产者与消费者模型(数据重复取出解决办法:休眠与唤醒方法 wait notify)
- java例程练习(多线程综合练习[生产者-消费者问题])
- 利用线程解决生产者——消费者问题
- 利用TaskScheduler处理Queue、Stack等类型的操作队列(生产者消费者场景)
- 生产者消费者问题(PV操作)
- 利用python线程编程实现生产者与消费者关系
- 利用wait()和notify()实现生产者与消费者问题
- Java SE学习笔记:线程通信、生产者与消费者案例、线程状态(线程的生命周期)、线程操作、Condition类
- 生产者与消费者(C#)转
- 斐波那契数列的性质
- 安卓开发进阶之弹性布局FlexboxLayout--Part1(翻译)
- sql 基础知识
- 根据文本内容的长度动态的设置TextView的高度
- Java多线程与并发学习之(四):线程常用方法
- 综合实战:生产者与消费者(利用Object类解决重复操作)
- ssm连表查询Mapper动态代理
- smiley-http-proxy-servlet 反向代理
- 关于Java内部类序列化
- HTML <Tabel>简单使用
- 2017.6.4测试 题一 k好数
- 微积分
- HDU2196
- Android开发技巧:AndroidWiFiADB-无线调试工具