代码 来啦
package cn.demo;
public class Demo02_Water {
public static void main(String[] args) {
// 1:实例化一个well
Well well = new Well();
// 实例化10个人
for (int i = 1; i <= 10; i++) {
Person p = new Person(well);
p.start();
}
}
}
class Well {
private int water = 100;
public void widthDraw() {
synchronized (this) {
water--;
System.err.println("第?个人,打了第?桶水,里面还有:" + water + "桶水");
}
}
}
class Person extends Thread {
Well well;// 接收这个对象
public Person(Well w) {
this.well = w;
}
@Override
public void run() {
// 打10桶水
for (int i = 1; i <= 10; i++) {
well.widthDraw();
}
}
}
? ?
第1个人,打了第1桶水,里面还有:99桶水
第1个人,打了第2桶水,里面还有:98桶水
第2个人,打了第1桶水,里面还有:97桶水
第10个人,打了第1桶水,里面还有:96桶水
第1个人,打了第3桶水,里面还有:95桶水
最主要的就是传参数