第9章多线程7965226620101108093909.pptVIP

  • 1
  • 0
  • 约1.2万字
  • 约 44页
  • 2017-07-16 发布于四川
  • 举报
注意: (1) wait()、 notify()和notifyAll()都是Object类中的方法,而不是Thread类中的方法。 (2)wait()、 notify()和notifyAll()方法只能在锁定(用synchronized修饰)的程序或语句块中使用,否则会产生编译异常。 (3)当线程(Consumer)调用对象(Stack)的wait()方法时,就把这个线程加到该对象的等待线程队列中。当另一个线程(Produce)调用同一对象(Stack)的notify()方法时,对象会唤醒其等待线程队列中的一个线程(Consumer) ,允许它继续运行。 Java的线程调度并不是严格按照优先级顺序的,他只是保证优先级高的线程得到时间片的机会更大一些。 实际编程时,不建议使用线程的优先级来确保算法的正确执行。要编写正确、跨平台的多线程代码,必须假设线程在任何时刻都有可能被剥夺CPU资源的使用权。 15 public synchronized Goods get() { 16 while(index == 0) {//缓冲区空 17 try { 18 this.wait(); //没有资源,等待 19 } catch (InterruptedException e) { } 20

文档评论(0)

1亿VIP精品文档

相关文档