黑马程序员技术交流社区

标题: 线程中start()方法调用问题 [打印本页]

作者: zhangx    时间: 2013-4-17 18:19
标题: 线程中start()方法调用问题
线程启动的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() ;        // 重复调用
        }
};
作者: 爪哇攻城狮    时间: 2013-4-17 18:42
同一线程对象,你启动了2次,会报IllegalThreadStateException异常,
通过new一个线程对象 。start启动一次。

作者: 董霁辉    时间: 2013-4-17 19:24
Thread类的start方法不能多次调用,否则会抛出一个IllegalThreadStateException异常。记住吧,你的程序已经帮你验证了
作者: Miss小强    时间: 2013-4-17 19:40
这个细节问题都没怎么注意啊,不知道会不会抛异常,反正一个线程只会被启动一次。。。




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