经典的问题:生产者消费者问题就充分体现并发处理,这里一生产电影和看电影进行描述
Movie类:
package practice0326testDeadLock;
/**
* 生产者消费者问题
* 信号灯机制进行处理
*
*
*/
public class Movie {
String movieName;
boolean f = true;
public synchronized void play(String movieName) {
//先让其等待,再唤醒
if(!f) {
try {
this.wait();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.movieName = movieName;
System.out.println("拍了一部电影"+movieName);
this.notify();
f = false;
}
public synchronized void view() {
if(f) {
try {
this.wait();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
try {
Thread.sleep(10);
} catch (InterruptedExceptio

本文通过一个电影生产与观看的实例,详细阐述了Java中的经典并发问题——生产者消费者模型。利用Movie、Player(生产者)和Viewer(消费者)类,展示了如何在多线程环境下实现资源的共享与同步。
最低0.47元/天 解锁文章
2154

被折叠的 条评论
为什么被折叠?



