黑马程序员技术交流社区

标题: 关于多线程问题求解 [打印本页]

作者: 王德云    时间: 2011-11-5 10:29
标题: 关于多线程问题求解
为什么启动多个线程电脑会相当卡,而且在运行结束的时候不会自动停止。例如:
  1. package com.Thread;

  2. public class Thread_Demo {

  3.         public static void main(String[] args) {
  4.                 TessThread t = new TessThread();
  5.                 for (int i = 0; i < 4; i++) {
  6.                         new Thread(t).start();
  7.                 }

  8.         }

  9. }

  10. class TessThread implements Runnable {

  11.         private int tickets = 20;

  12.         public void run() {
  13.                 while (true) {
  14.                         if (tickets > 0) {
  15.                                 try {
  16.                                         Thread.sleep(100);
  17.                                 } catch (Exception e) {
  18.                                 }
  19.                                 System.out.println(Thread.currentThread().getName() + "出售票"
  20.                                                 + tickets--);
  21.                         }
  22.                 }
  23.         }

  24. }
复制代码

作者: 柴永菲    时间: 2011-11-5 16:08
启动的线程多了cpu就执行不过来,所以会很卡,你的那个run方法里的while(true)是个死循环,所以不会自动停止
作者: 王维波    时间: 2011-11-5 19:56
建议你把毕老师的java基础好好看看,你这个是进入了死锁。
作者: 王维波    时间: 2011-11-5 19:56
建议你把毕老师的java基础好好看看,你这个是进入了死锁。




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