编写Java程序,需要满足下面要求: (1)编写两个线程类,分别命名为First和Second,可选用继承Thread类或者执行Runnable接口的方法创建这两个线程类,线程可循环3次输出自己线程的名字; (2)编写主类Test声明创建两个线程类的对象,测试这两个线程对象在以下条件下的运行结果。 A.将两个线程设为同优先级,比较运行情况。 B.将两个线程设为不同优先级,比较运行情况。 C.将两个线程设为同优先级,比较线程调用sleep()之后的运行情况。
时间: 2024-03-01 19:50:21 浏览: 57
以下是符合要求的Java程序:
```java
// First线程类
class First extends Thread {
public void run() {
for (int i = 0; i < 3; i++) {
System.out.println("First");
}
}
}
// Second线程类
class Second extends Thread {
public void run() {
for (int i = 0; i < 3; i++) {
System.out.println("Second");
}
}
}
// 主类Test
public class Test {
public static void main(String[] args) {
// 创建两个线程对象
First first = new First();
Second second = new Second();
// A.将两个线程设为同优先级,比较运行情况。
first.setPriority(Thread.NORM_PRIORITY);
second.setPriority(Thread.NORM_PRIORITY);
first.start();
second.start();
// B.将两个线程设为不同优先级,比较运行情况。
first.setPriority(Thread.MAX_PRIORITY);
second.setPriority(Thread.MIN_PRIORITY);
first.start();
second.start();
// C.将两个线程设为同优先级,比较线程调用sleep()之后的运行情况。
first.setPriority(Thread.NORM_PRIORITY);
second.setPriority(Thread.NORM_PRIORITY);
try {
first.start();
Thread.sleep(1000);
second.start();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
在上述程序中,我们创建了两个线程类First和Second,并通过继承Thread类的方式实现了它们的run方法。在主类Test中,我们先分别将两个线程对象设为同优先级,不同优先级和同优先级并调用sleep()的情况下进行测试。在每种情况下,我们都分别启动了两个线程,并让它们循环3次输出自己线程的名字。通过观察它们的输出顺序和频率,我们可以比较不同情况下的运行情况。
阅读全文