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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhangx 中级黑马   /  2013-4-17 18:19  /  1846 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

线程启动的start()方法,为什么在Thread类中重复调用start()方法时,系统会抛出异常?这样的问题是记住结论还是理解原理?
如:
class MyThread extends Thread{        // 继承Thread类,作为线程的实现类
        private String name ;                // 表示线程的名称
        public MyThread(String name){
                this.name = name ;                // 通过构造方法配置name属性
        }
        public void run(){        // 覆写run()方法,作为线程 的操作主体
                for(int i=0;i<10;i++){
                        System.out.println(name + "运行,i = " + i) ;
                }
        }
};
public class ThreadDemo{
        public static void main(String args[]){
                MyThread mt1 = new MyThread("线程A ") ;         // 实例化对象
                mt1.start() ;        // 调用线程主体
                mt1.start() ;        // 重复调用
        }
};

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

3 个回复

正序浏览
这个细节问题都没怎么注意啊,不知道会不会抛异常,反正一个线程只会被启动一次。。。
回复 使用道具 举报
Thread类的start方法不能多次调用,否则会抛出一个IllegalThreadStateException异常。记住吧,你的程序已经帮你验证了

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
同一线程对象,你启动了2次,会报IllegalThreadStateException异常,
通过new一个线程对象 。start启动一次。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马