A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 伍艳雄 中级黑马   /  2014-1-12 18:22  /  957 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 伍艳雄 于 2014-1-12 18:46 编辑
  1. public class Demo4_Thread {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 Ticket t1 = new Ticket();
  7.                 Ticket t2 = new Ticket();
  8.                 Ticket t3 = new Ticket();
  9.                 Ticket t4 = new Ticket();
  10.                
  11.                 t1.start();
  12.                 t2.start();
  13.                 t3.start();
  14.                 t4.start();
  15.         }

  16. }

  17. class Ticket extends Thread{
  18.         private static int ticket =100;  //为什么这里加上静态就只有一百张票了,一直没想明白...
  19.         public  void run(){
  20.                 while(ticket>0){
  21.                         System.out.println(Thread.currentThread().getName()+"sale :  "+ticket--);
  22.                 }
  23.         }
  24. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 神马都是浮云

查看全部评分

4 个回复

正序浏览
ixiangfeng 发表于 2014-1-12 18:39
静态数据是共享的,无论你创建多少个对象都是一个数据, 你想想定义Person类时,把Country设为静态的,例如 ...

哦,,懂了,,就是如果不加静态..每创建一个对象,那么ticket就会随着对象进入堆内存.四个对象就是四个ticket..加了静态.ticket就会类的加载进入方法区.四个对象共享一个ticket.......
谢谢..
回复 使用道具 举报
完美恋爱 发表于 2014-1-12 18:26
这有什么不明白的啊!那是毕老师自己定义的100张票而已嘛!

不加静态四个进程各100张...加了静态四个进程一共100张...我想知道static在这里的作用..
回复 使用道具 举报
静态数据是共享的,无论你创建多少个对象都是一个数据, 你想想定义Person类时,把Country设为静态的,例如设为中国,然后无论你创建多少个人的对象,它的Country都是中国,因为这些人对象都是用的同一个Country

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 赞一个!

查看全部评分

回复 使用道具 举报
这有什么不明白的啊!那是毕老师自己定义的100张票而已嘛!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马