Java程序的输出 |设置 46(多线程)
先决条件: Java的多线程
1. 程序的输出是什么?
class Test extends Thread {
public
void run()
{
System.out.println("Run");
}
} class Myclass {
public
static void main(String[] args)
{
Test t = new Test();
t.start();
}
}
选项:
1.创建一个线程
2.创建了两个线程
3. 依赖系统
4.没有创建线程
输出:
The answer is option (2)
说明:在上面的程序中,会创建一个线程,即负责执行main()方法的主线程和负责执行run()的t.start()执行后创建子线程方法。
2. 程序的输出是什么?
class Test extends Thread {
public
void run()
{
System.out.println("Run");
}
} class Myclass {
public
static void main(String[] args)
{
Test t = new Test();
t.run();
}
}
选项:
1.创建一个线程
2.创建了两个线程
3. 依赖系统
4.没有创建线程
输出:
The answer is option (1)
说明:在上面的程序中只会创建一个线程,即只负责执行 main() 方法的主线程。 run() 方法像普通方法一样由对象 t 调用。
3. 程序的输出顺序是什么?
class Test extends Thread {
public
void run()
{
System.out.println("Run");
}
} class Myclass {
public
static void main(String[] args)
{
Test t = new Test();
t.start();
System.out.println("Main");
}
}
选项:
1. 主要运行
2. 运行主程序
3. 取决于程序
4. 依赖JVM
输出:
The answer is option (4)
说明:在上面的程序中,我们无法预测输出的确切顺序,因为它是由 JVM 的一部分线程调度程序决定的。
4. 程序的输出是什么?
class Test implements Runnable {
public
void run()
{
System.out.println("Run");
}
} class Myclass {
public
static void main(String[] args)
{
Test t = new Test();
t.start();
System.out.println("Main");
}
}
选项:
1. 主要运行
2. 运行主程序
3.编译时错误
4. 依赖JVM
输出:
The answer is option (3)
说明:在上面的程序中,我们将得到编译时错误,因为 start() 方法仅存在于 Thread 类中,并且我们正在实现 Runnable 接口。
5. 程序的输出是什么?
class Test implements Runnable {
public
void run()
{
System.out.println("Run");
}
} class Myclass {
public
static void main(String[] args)
{
Thread t1 = new Thread();
t1.start();
System.out.println("Main");
}
}
选项:
1.运行
2. 主要
3.编译时错误
4. 运行主程序
输出:
The answer is option (2)
说明:在上面的程序中,我们调用了Thread类的start()方法,它负责执行Thread类的run()方法,而Thread类的run()方法有空实现。这就是为什么将创建一个子线程但它不会执行测试类 run() 方法的原因。