多线程模拟多人过山洞(每次一人)
package holiday2.day12;
/**
* 多线程模拟多人过山洞(每次一人)
*/
public class TestCave {
public static void main(String[] args) {
Cave cave = new Cave();
/*new Thread(new Person("a",cave)).start();
new Thread(new Person("b",cave)).start();
new Thread(new Person("c",cave)).start();
new Thread(new Person("d",cave)).start();
new Thread(new Person("e",cave)).start();
new Thread(new Person("f",cave)).start();
new Thread(new Person("g",cave)).start();
new Thread(new Person("h",cave)).start();
new Thread(new Person("i",cave)).start();
new Thread(new Person("j",cave)).start();*/
char name='a';
for(int i=1; i<=10; i++){
new Thread(new Person((name++)+"",cave)).start();
}
}
}
class Cave {
int a=1;
}
class Person implements Runnable{
Cave cave;
private String name;
public Person(String name,Cave cave) {
this.name = name;
this.cave = cave;
}
@Override
public void run() {
synchronized (cave){
System.out.println("name:"+name+" No."+((cave.a)++));
}
}
}