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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tonygone 中级黑马   /  2013-7-17 14:22  /  1433 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 tonygone 于 2013-7-18 08:09 编辑
  1. public class Runner2 implements Runnable {
  2.     public void run() {
  3.         try {
  4.             for (int i = 0; i < 30; i++) {
  5.                 System.out.println(i);
  6.                 Thread.sleep(1000);
  7.             }
  8.         } catch (InterruptedException ex) {
  9.              System.out.println("线程被中断");
  10.             return;
  11.         }
  12.     }
  13. }
  14. public class TestInterupt {
  15.     public static void main(String[] args) {
  16.         Runner2 runner2 = new Runner2();
  17.         Thread t = new Thread(runner2);
  18.         t.start();
  19.         try {
  20.             Thread.sleep(10000);
  21.              t.interrupt();
  22.         } catch (InterruptedException ex) {
  23.             System.out.println("主线程被中断");
  24.         }
  25.     }
  26. }
复制代码
我编译并执行TestInterup输出的结果是
0
1
2
3
4
5
6
7
8
9

可是我之后将Runner2类进行改写,代码如下:
  1. public class Runner2 implements Runnable {
  2.     public void run() {
  3.         try {
  4.             for (int i = 0; i < 30; i++) {
  5.                 Thread.sleep(1000);
  6.                 System.out.println(i);
  7.             }
  8.         } catch (InterruptedException ex) {
  9.              System.out.println("线程被中断");
  10.             return;
  11.         }
  12.     }
  13. }
复制代码
为什么我再次编译执行TestInterup类,其输出的结果却是:
0
1
2
3
4
5
6
7
8

为什么这次没有输出9呢?

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

9 个回复

倒序浏览
我很疑惑
回复 使用道具 举报
liukunaitasa 发表于 2013-7-17 15:00
楼主怎么编译通过的。两个public类

我没有放在一个java文件里:#
回复 使用道具 举报
本帖最后由 一木榜公 于 2013-7-17 17:38 编辑

main线程中:Thread.sleep(10000);         t线程中:Thread.sleep(1000);

main线程执行到sleep,睡的时间是 t线程的10倍,也就是t线程能执行10次循环,然后中断。所以修改前你输出的是10个数。

   1  2   3   4   5   6   7   8   9    10   (睡的次数)
0   1   2   3    4   5   6   7   8   9  中断了

修改后是线程先睡,
1   2   3   4   5   6   7   8   9   10   睡的次数
0    1   2   3    4   5   6   7   8     中断了

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
如果同学已经解决问题 请修改问题为已解决。
回复 使用道具 举报
路过,瞅瞅~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马