import java.util.Calendar;
import java.util.Date;
public class YesterdayCurrent extends Thread {
private static int id = 0;
private static int number = 10;
private Object obj;
public static void main(String[] args) {
Object object = new Object();
YesterdayCurrent thread;
for (int i = 0; i < 5; i++) {
thread = new YesterdayCurrent(object);
}
}
public YesterdayCurrent(Object obj) {
super("" + ++id);
this.obj = obj;
start();
}
public String toString() {
return "THREAD#" + getName();
}
private Date getDate() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 0);
calendar.add(Calendar.DATE, -1);
Date date = calendar.getTime();
return date;
}
public void run() {
synchronized (obj) {
StringBuffer buffer;
while (number <= 100) {
buffer = new StringBuffer(toString());
buffer.append("\t昨天是:");
buffer.append(getDate().getMonth());
buffer.append("月");
buffer.append(getDate().getDate());
buffer.append("日");
System.out.println(buffer);
number += 10;
obj.notifyAll();
//一定要有这个判断,否则线程阻塞
if (number <= 100) {
try {
obj.wait();
sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}