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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 騛鹏 中级黑马   /  2013-3-17 15:43  /  990 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 騛鹏 于 2013-3-18 09:16 编辑
  1. class Test extends Thread
  2. {
  3.         Test(String name)
  4.         {
  5.                 super(name);
  6.         }
  7.         public void run()
  8.         {
  9.                 for (int x=0; x<60; x++)
  10.                 {
  11.                         System.out.println(this.getName()+" run..."+x);
  12.                 }
  13.         }
  14. }
  15. class  ThreadTest
  16. {
  17.         public static void main(String[] args)
  18.         {
  19.                 Test t1 = new Test("one----");
  20.                 Test t2 = new Test("two++++");

  21.                 t1.start();
  22.                 t2.start();
  23.                 for (int x=0; x<60; x++)
  24.                 {
  25.                         System.out.println("main...."+x);
  26.                 }
  27.         }
  28. }
复制代码
创建多线程方式一 继承Thread类  程序运行结束 java.exe 也结束
  1. class Ticket implements Runnable
  2. {
  3.        private int tick = 100;

  4.        public void run()
  5.       {
  6.             while (true)
  7.            {
  8.                   if (tick>0)
  9.                   {
  10.                             System.out.println(Thread.currentThread().getName()+"....sale...."+tick--);
  11.                   }
  12.            }
  13.      }
  14. }
  15. class TicketDemo
  16. {
  17.       public static void main(String[] args)
  18.      {
  19.               Ticket t = new Ticket();

  20.               Thread t1 = new Thread(t);
  21.               Thread t2 = new Thread(t);
  22.               Thread t3 = new Thread(t);
  23.               Thread t4 = new Thread(t);

  24.               t1.start();
  25.               t2.start();
  26.               t3.start();
  27.               t4.start();
  28.      }
  29. }
复制代码
方式二 实现Runnable 程序运行结束  java.exe 仍在运行  ,这样是否会降低CPU的使用效率?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

倒序浏览
你的循环有问题
  1. class Ticket implements Runnable
  2. {
  3.        private int tick = 100;

  4.        public void run()
  5.       {
  6.             while (true)//这里不会停,一直转圈
  7.            {
  8.                   if (tick>0)//只是打印了100次,当tick=0的时候就不读这句了,而是无线空转下去
  9.                   {
  10.                             System.out.println(Thread.currentThread().getName()+"....sale...."+tick--);
  11.                   }
  12.            }
  13.      }
  14. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
张世钦 发表于 2013-3-17 21:50
你的循环有问题

谢谢 是这个问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马