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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王德云 金牌黑马   /  2011-11-5 10:29  /  1874 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么启动多个线程电脑会相当卡,而且在运行结束的时候不会自动停止。例如:
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨玉揆 + 1

查看全部评分

3 个回复

倒序浏览
启动的线程多了cpu就执行不过来,所以会很卡,你的那个run方法里的while(true)是个死循环,所以不会自动停止
回复 使用道具 举报
建议你把毕老师的java基础好好看看,你这个是进入了死锁。
回复 使用道具 举报
建议你把毕老师的java基础好好看看,你这个是进入了死锁。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马