编写三个不同优先级线程的程序,三个线程分别输出10个a、b、c,每输入一个sleep50
时间: 2024-02-24 20:54:44 浏览: 66
创建一个带三个子线程的程序,第一个线程启动10ms后
好的,以下是一个使用Java多线程的例子,创建了三个不同优先级的线程,分别输出10个字母 a、b、c,每输出一个字母就 sleep 50 毫秒:
```
public class PriorityThreadExample {
public static void main(String[] args) {
Thread t1 = new Thread(new PrintChar('a'), "Thread 1");
Thread t2 = new Thread(new PrintChar('b'), "Thread 2");
Thread t3 = new Thread(new PrintChar('c'), "Thread 3");
t1.setPriority(Thread.MAX_PRIORITY);
t2.setPriority(Thread.NORM_PRIORITY);
t3.setPriority(Thread.MIN_PRIORITY);
t1.start();
t2.start();
t3.start();
}
static class PrintChar implements Runnable {
private char charToPrint;
public PrintChar(char c) {
charToPrint = c;
}
public void run() {
for (int i = 1; i <= 10; i++) {
System.out.print(charToPrint + " ");
try {
Thread.sleep(50);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
}
}
```
在这个例子中,我们创建了三个 `PrintChar` 线程,每个线程负责输出一个字母。我们使用 `Thread.MAX_PRIORITY`、`Thread.NORM_PRIORITY` 和 `Thread.MIN_PRIORITY` 为三个线程分别设置了最高、普通和最低优先级。然后我们让三个线程开始运行,并在输出每个字母之后让线程 sleep 50 毫秒。
你可以尝试运行这个程序,观察每个线程输出的结果,可以看到优先级高的线程会有更多的机会运行。
阅读全文