黑马程序员技术交流社区

标题: 我看到的一个多线程问题 [打印本页]

作者: 邓飞飞    时间: 2012-4-8 10:11
标题: 我看到的一个多线程问题
class Hello extends Thread {  
    public void run() {     
     for (int i = 0; i < 7; i++) {     
         if (count > 0) {      
          System.out.println("count= " + count--);           
   }   
    }   
}

public static void main(String[] args) {     
     hello h1 = new hello();   
     hello h2 = new hello();        
hello h3 = new hello();      
    h1.start();   
     h2.start();        
h3.start();     
}   
   private int count = 5;
}
我要问的问题是为什么最后定义一个private int count = 5;    还有一个问题是为什么要把主函数Main 放在类Hello 中  可以把主函数拿到类Hello外吗
   
作者: niceBoy    时间: 2012-4-8 10:18
我要问的问题是为什么最后定义一个private int count = 5;   
  if (count > 0) {      
          System.out.println("count= " + count--);           
   } 说明count是用来判断此输出次数
还有一个问题是为什么要把主函数Main 放在类Hello 中  可以把主函数拿到类Hello外吗?这个无所谓的,主函数只要放类中就成,至于哪个类,你自己看办,一般放在和文件名同名的类中,阅读性好些
作者: 曾晓文    时间: 2012-4-8 10:22
定义一个count成员变量,只是为了运行时,看多线程运行时线程的切换效果,i 的值应该写大一点,运行效果比较明显。
主函数也是一个函数,属于一个类中的成员。所以要放在类里边。
作者: 邓海涛    时间: 2012-4-8 10:54
你可以把count=5想象成五张还没有卖出去的票,所以用private来限制权限,当线程运行的时候就把票count=5传给买票机买票,每当你卖出一张票的时候count自动减一,当count=0 的时候表示票卖光了。这样不知道你是不是能更好的理解那个private count = 5
作者: zhouxp3323    时间: 2012-4-8 13:25
这个private int count=5; 放最后也一样,它是个成员变量,当你开启3个线程的时候它就开始操作这个数了,main方法可以拿到Hello类的外面,但是要定义在别的类中
作者: pray    时间: 2014-4-26 05:16
人生没有彩排,每天都是现场直播!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2