package com.prj;
public class TestPC2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Tv tv=new Tv();
new Player(tv).start();
new Watcher(tv).start();
}
}
class Player extends Thread{
Tv tv;
public Player(Tv tv) {
// TODO Auto-generated constructor stub
this.tv=tv;
}
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 20; i++) {
if(i%2==0) {
this.tv.play("快乐大本营");
}else {
this.tv.play("抖音");
}
}
}
}
class Watcher extends Thread{
Tv tv;
public Watcher(Tv tv) {
// TODO Auto-generated constructor stub
this.tv=tv;
}
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i <20; i++) {
this.tv.watch();
}
}
}
class Tv{
String film;
boolean flag=true;
public synchronized void play(String film) {
if(!flag) {
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("演员表演了:"+film);
this.notifyAll();
this.film=film;
this.flag=!this.flag;
}
public synchronized void watch() {
if(flag) {
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("观众观看了:"+film);
this.notifyAll();
this.flag=!this.flag;
}
}