Java中编写有三个不同优先级线程的程序,三个线程分别输出10个a、b、c,每输出一个停(sleep)50毫秒
时间: 2024-02-23 13:58:19 浏览: 84
下面是一个使用 Java 语言编写的三个不同优先级线程的程序,每个线程分别输出 10 个 a、b、c,每输出一个停(sleep)50 毫秒的例子:
```java
class PrintCharThread extends Thread {
private char ch;
private int n;
public PrintCharThread(char ch, int n) {
this.ch = ch;
this.n = n;
}
@Override
public void run() {
for (int i = 0; i < n; i++) {
System.out.print(ch);
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Main {
public static void main(String[] args) {
// 创建三个线程并设置不同的优先级
Thread t1 = new PrintCharThread('a', 10);
Thread t2 = new PrintCharThread('b', 10);
Thread t3 = new PrintCharThread('c', 10);
t1.setPriority(Thread.MIN_PRIORITY);
t2.setPriority(Thread.NORM_PRIORITY);
t3.setPriority(Thread.MAX_PRIORITY);
// 启动三个线程
t1.start();
t2.start();
t3.start();
// 等待三个线程结束
try {
t1.join();
t2.join();
t3.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("\nDone.");
}
}
```
在上面的代码中,我们创建了一个 PrintCharThread 类来表示输出字符的线程,每个线程都有一个字符和输出次数的参数。在 run() 方法中,我们使用 for 循环输出指定次数的字符,并且在输出每个字符后通过 Thread.sleep() 方法停顿 50 毫秒。在主函数中,我们创建三个线程并设置不同的优先级,然后启动三个线程。在三个线程结束后输出 "Done." 。
阅读全文