Java学习提要——sleep()和wait()的实例与区别
来源:互联网 发布:通达信均线公式源码 编辑:程序博客网 时间:2024/05/16 01:19
非常经典的多线程处理模型
//生产者与消费者实例class Info { private String title ; private String content ; private boolean flag = true ; // flag = true,表示可以生产,但是不可以取走 // flag = flase,表示可以取走,但是不可以生产 public synchronized void set(String title,String content) { // 重复进入到set()方法里面,发现不能够生产,所以要等待 if(this.flag == false) { try{ super.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } this.title = title ; try { //休眠 Thread.sleep(100); }catch (InterruptedException e ) { e.printStackTrace(); } this.content = content ; this.flag = false ; //修改生产标记 super.notify(); // 唤醒其他等待线程 } public synchronized void get() { if(this.flag == true) { try{ super.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } try{ Thread.sleep(100); } catch (InterruptedException e ) { e.printStackTrace(); } System.out.println(this.title + " - " + this.content); this.flag = true ; super.notify(); }}class Productor implements Runnable { private Info info ; public Productor (Info info){ this.info = info ; } public void run() { for(int x=0 ; x < 10 ; x++ ){ if(x % 2 == 0) { this.info.set("liu","nice"); }else { this.info.set("qin","good"); } } }}class Customer implements Runnable { private Info info ; public Customer (Info info) { this.info = info ; } public void run() { for(int x=0 ; x<10 ; x++){ this.info.get(); } }}public class Nice { public static void main(String args[]){ Info info = new Info(); new Thread(new Productor(info)).start() ; new Thread(new Customer(info)).start() ; }}
! sleep()与wait()的区别?
1.sleep()是Thread类定义的方法,wait()是Object()类定义的方法;
2.sleep()可以设置休眠时间,时间一到自动唤醒,而wait()需要等待notify()进行唤醒;
0 0
- Java学习提要——sleep()和wait()的实例与区别
- Java多线程——sleep()和wait()的区别
- JAVA—sleep()和wait()的区别
- JAVA—sleep()和wait()的区别
- JAVA—sleep()和wait()的区别
- JAVA—sleep()和wait()的区别
- JAVA—sleep()和wait()的区别
- Java并发编程深入学习—— sleep和wait的区别
- java await、wait与sleep和yield之间的区别
- Java中sleep()与wait()的区别
- java sleep与wait的区别
- java 中sleep 与 wait 的区别
- java线程wait与sleep的区别
- Java中sleep() 与wait()的区别
- Java中sleep()与wait()的区别
- Java中sleep()与wait()的区别
- Java中sleep()与wait()的区别
- Java中sleep()与wait()的区别
- CCF 201503-1 图像旋转
- PostGIS安装
- linux使用flock文件锁解决crontab冲突问题
- 我的第一个lua程序之声明变量和逻辑运算符
- 【NOIP2012模拟10.25】剪草
- Java学习提要——sleep()和wait()的实例与区别
- CCF 201503-2 数字排序
- 对于linux的软连接的设置
- Python基础-几个基础函数应用
- lua中的函数
- CCF 201503-3 节日
- ionic-基于angular-resource的restful开发
- Windows 64位下安装Redis详细教程
- 源代码——十字链表实现稀疏矩阵