无法在eclipse中执行此操作。它有什么特别的原因吗?在启用执行选项之前,eclipse是否会查找任何特定内容? 如果执行以下代码,结果会是什么?是“1”吗?
class A extends Thread {
private int i;
public void run(){i=1;}
public static void main(String[] args) {
A a = new A(); a.run();System.out.println(a.i);
}
}
编辑:只是玩继承和线程。此处未测试任何特定的线程功能。
答案 0 :(得分:2)
您所要做的就是将您的班级设为公开
public class A extends Thread {
private int i;
public void run(){i=1;}
public static void main(String[] args) {
A a = new A(); a.run();System.out.println(a.i);
}
}
答案 1 :(得分:1)
@Hussain关于让你的课程公开是对的,但我想我会为后代添加一些额外的信息。
正如您的代码现在所示,您没有在另一个线程中运行代码。您可以从代码中删除extends Thread
,它仍然可以正常工作。您的main
只是直接调用run()
方法而不是调用任何线程魔法。
如果您确实希望您的代码在另一个线程中运行,那么您需要添加a.start();
以启动线程运行,并a.join();
等待它完成。在start()
方法中,线程被分叉并调用run()
方法。
A a = new A();
// start the thread which calls run()
a.start();
// wait for the thread to finish
a.join();
System.out.println(a.i);
最后,建议您implements Runnable
而不是extends Thread
。所以你的代码看起来像是:
A a = new A();
Thread thread = new Thread(a);
// start the thread which calls run()
thread.start();
// wait for the thread to finish
thread.join();
System.out.println(a.i);
如果您之前没有这样做,我建议您阅读tutorial on threads。