- public class Test2 {
- public static void main(String[] args) {
- Rabbit rabbitw = new Rabbit("小白兔");
- Rabbit rabbitg = new Rabbit("小灰兔");
- rabbitw.start();
- rabbitg.start();
- }
- }
- class Rabbit extends Thread {
- private static int i = 100;
- Rabbit(String s) {
- setName(s);// 线程名字
- }
- public void run() {
- while (i > 0) {
- synchronized (this) {
- System.out.println(this.getName() + "吃了1个,还有胡萝卜" + --i);
- }
- }
- }
- }
复制代码 synchronized (this) 这里的this.是指Rabbit这个类,还是new出来的Thread对象.
如果是Rabbit这个类,为什么可以调用getName().
如果不是,那2个多线程岂不是不同步?那怎么解决啊?
|