编写有三个不同优先级线程的程序,三个线程分别输出10个a,b,c,
时间: 2023-12-14 08:04:03 浏览: 117
线程优先级示例-赛马.rar_visual c_赛马_赛马程序
以下是一个简单的Java程序,其中包含三个不同优先级的线程,它们分别输出10个'a'、'b'、'c':
```
public class ThreadPriorityExample {
public static void main(String[] args) {
Thread thread1 = new Thread(new PrintChar('a'), "Thread 1");
Thread thread2 = new Thread(new PrintChar('b'), "Thread 2");
Thread thread3 = new Thread(new PrintChar('c'), "Thread 3");
// 设置线程优先级
thread1.setPriority(Thread.MIN_PRIORITY);
thread2.setPriority(Thread.NORM_PRIORITY);
thread3.setPriority(Thread.MAX_PRIORITY);
// 启动线程
thread1.start();
thread2.start();
thread3.start();
}
}
class PrintChar implements Runnable {
private char charToPrint;
public PrintChar(char c) {
charToPrint = c;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.print(charToPrint + " ");
}
}
}
```
在这个程序中,我们定义了一个PrintChar类,它实现了Runnable接口,用于输出指定的字符。我们创建了三个PrintChar对象,分别对应输出'a'、'b'、'c',并将它们作为参数创建了三个Thread对象。然后,我们为每个线程设置了不同的优先级,并启动了这三个线程。
程序的输出结果可能类似于以下内容:
```
a a a a a a a a a a b b b b b b b b b b c c c c c c c c c c
```
在这个输出中,我们可以看到三个线程交替输出'a'、'b'、'c',并且线程的优先级确实影响了线程的执行顺序。
阅读全文