当前位置: 技术问答>java相关
关于多线程的奇怪问题,run()方法只会被start()方法自动启动一次吗?
来源: 互联网 发布时间:2015-08-09
本文导语: 只有新建线程实例,然后调用该实例的start()方法时,该线程才会启动,即调用run()方法;而当线程运行结束,即退出run()方法后,再次调用start()方法时,并不能启动线程,也就是说不会调用run()方法。为什么? ...
只有新建线程实例,然后调用该实例的start()方法时,该线程才会启动,即调用run()方法;而当线程运行结束,即退出run()方法后,再次调用start()方法时,并不能启动线程,也就是说不会调用run()方法。为什么?
|
线程实例被构造后是一个环境,当run方法执行过后这个事例中的变量的初始值可能已经发生变化,也就是不是线程未运行时的状态,无法保证进入run后能正确运行,所以一个线程实例只能进入run方法一次
|
线程是由操作系统实现的,不同操作系统底层行为不一样的