黑马程序员技术交流社区

标题: javaw.exe未退出并大量占用CPU [打印本页]

作者: 韩天雷    时间: 2014-7-13 01:26
标题: javaw.exe未退出并大量占用CPU
本帖最后由 韩天雷 于 2014-7-13 01:48 编辑


代码执行完后 javaw.exe未退出并大量占用CPU
不知道原因~

代码如下,求解答~
  1. class Ticket implements Runnabl{
  2.         private int tick = 100;
  3.         Object p =new Object();
  4.         public void run() {
  5.                 while (true) {

  6.                         synchronized (p) {
  7.                                 if (tick > 0) {
  8.                                         try {
  9.                                                 Thread.sleep(10);
  10.                                         } catch (Exception e) {
  11.                                         }
  12.                                         System.out.println(Thread.currentThread().getName() + "卖出"
  13.                                                         + tick-- + "号票!");
  14.                                 }

  15.                         }

  16.                 }
  17.         }
  18. }

  19. public class TicketDemo {
  20.         public static void main(String[] args) {

  21.                 Ticket t = new Ticket();

  22.                 Thread t1 = new Thread(t, "1号窗口");
  23.                 Thread t2 = new Thread(t, "2号窗口");
  24.                 Thread t3 = new Thread(t, "3号窗口");
  25.                 Thread t4 = new Thread(t, "4号窗口");

  26.                 t1.start();
  27.                 t2.start();
  28.                 t3.start();
  29.                 t4.start();


  30.         }
  31. }
复制代码



作者: 韩天雷    时间: 2014-7-13 01:48
本帖最后由 韩天雷 于 2014-7-13 01:50 编辑

3Q~{:3_57:} 按老师的敲的,我还以为我系统出问题了呢~

作者: 劇情侢媄終究媞    时间: 2014-7-13 08:14
新启动的线程中运行的是一个while的死循环.只是说判断票数大于0就卖.小于零后依旧会一直判断.你可以在加一句判断.如果车票小于等于零就return
作者: 青程    时间: 2014-7-13 09:18
死循环,改一下就好了
作者: 非5莫属    时间: 2014-7-13 09:29
路过  学习了




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