本帖最后由 杜光 于 2013-7-3 08:55 编辑
先贴出老师的源代码.- class Ticket extends Thread
- {
- private int num = 100;
- public void run()
- {
- while (true)
- {
- if (num>0)
- {
- System.out.println(Thread.currentThread().getName()+"...sale"+num);
- }
- }
-
- }
- }
- class TicketDemo
- {
- public static void main(String[] args)
- {
- Ticket t1 = new Ticket();
- Ticket t2 = new Ticket();
- Ticket t3 = new Ticket();
- Ticket t4 = new Ticket();
- t1.start();
- t2.start();
- t3.start();
- t4.start();
- }
- }
复制代码 第一个问题,为什么我这里和老师一模一样的代码,我输出的是
--而且还在一直循环--------而老师的确实这个?
第二个问题,老师说了,如果要4个窗口同时卖100张票,这样是不行的,那我就想到,能不能值创建一个对象t1,然后把t1的首地址值赋给其他三个对象呢?下面贴出代码:- class Ticket extends Thread
- {
- private int num = 100;
- public void run()
- {
- while (true)
- {
- if (num>0)
- {
- System.out.println(Thread.currentThread().getName()+"...sale"+num);
-
- }
- }
-
- }
- }
- class TicketDemo
- {
- public static void main(String[] args)
- {
-
- Ticket t1 = new Ticket();//只new一个对象t1,然后把t1赋给t2,t3,t4,这样不就是把t1的首地址值赋给了另外三个对象,从而让其他三个对象都指向同一个地址吗?
- Ticket t2 = t1;
- Ticket t3 = t1;
- Ticket t4 = t1;
- t1.start();
- t2.start();
- t3.start();
- t4.start();
- }
- }
复制代码 可是!!为什么结果却是这样????
----------和我刚开始运行老师的代码一样,无限循环,但是这次只有一个线程---------Thread-0,为什么呢???这是第二个问题!!
直到我要点发帖之前,我还是再认真的检查了一遍,和老师的代码一个标点符号都不差...如果有人找出我的代码和老师的代码有一点不一样...我就去撞豆腐去.......
然后,现在已经是深夜了,如果今晚有人回的话,我明天再回.大家晚安.
|