public class Test
{
public static void main(String[] args) throws Exception
{
A a = new A();
a.start();
a.run();//为什么是主线程调用,是a调用自己的run方法啊
}
}
class A extends Thread
{
public void run()
{
for(int i=0; i<10; i++)
{
System.out.println(currentThread().getName()+":"+i);
try{
sleep(100);
}catch(Exception e){
}
}
}
}
{
public static void main(String[] args) throws Exception
{
A a = new A();
a.start();
a.run();//为什么是主线程调用,是a调用自己的run方法啊
}
}
class A extends Thread
{
public void run()
{
for(int i=0; i<10; i++)
{
System.out.println(currentThread().getName()+":"+i);
try{
sleep(100);
}catch(Exception e){
}
}
}
}
解决方案 »
- 各位大侠,帮忙写一个输入输出流的程序,谢谢!
- 一个关于"this();"用法调用另外一个构造方法的困惑!
- 求解:non-static method setTitle(java.lang.string ) cannot be reference from a static context
- 基础:引用变量和引用对象有什么区别呢?
- 帮我说说这两句话是什么意思?
- 捕获异常后为什么又出现找不到符号的错误?
- Integer 直接给变量赋值与用new赋值有什么不同?
- 有谁知道,jbuilder7.0是调用了那些命令打包成EXE文件的?
- 热心的大哥们请进!
- 多线程性能问题,Linux下部署跑一会就停了,有日志
- 一个关于界面交互中死循环的问题~·谢谢各位~·在线等着的~·
- socket问题
a.start();为什么要下面这一句?
a.run();//为什么是主线程调用,是a调用自己的run方法啊
if (threadStatus != 0 || this != me)
throw new IllegalThreadStateException();
group.add(this);
start0();
if (stopBeforeStart) {
stop0(throwableFromStop);
}
}
===============
这是原代码。
public class Test { public static void main(String[] args) {
Test t = new Test();
A a = t.new A();
a.start();
a.run();
a.run2(); //试着以此注释掉这三个方法
}
class A extends Thread{
@Override
public void run() {
System.out.println(currentThread().getName());
}
public void run2(){
System.out.println(currentThread().getName());
}
}
}
main
main
Thread-0
Test t = new Test();
A a = t.new A(); a.start();
a.run();//为什么是主线程调用,是a调用自己的run方法啊为什么是主线程调用?那是因为你这么写就是主线程调用了内部类中的一个普通的方法,所以就是主线程调用