java用synchronized建立三个线程,A线程打印10次,B线程打印10次,C线程打印10次,交替打印10次A、B、C。 10次
时间: 2023-06-20 15:04:33 浏览: 89
可以使用一个计数器来控制每个线程的打印次数,使用synchronized关键字来保证线程的同步执行。具体实现如下:
```java
public class PrintThread implements Runnable {
private static final int PRINT_COUNT = 10; // 每个线程打印次数
private static int count = 0; // 打印计数器
private String name; // 线程名称
public PrintThread(String name) {
this.name = name;
}
@Override
public void run() {
while (count < PRINT_COUNT * 3) {
synchronized (PrintThread.class) {
if (count % 3 == 0 && name.equals("A") || count % 3 == 1 && name.equals("B") || count % 3 == 2 && name.equals("C")) {
System.out.println(name);
count++;
}
}
}
}
public static void main(String[] args) {
PrintThread a = new PrintThread("A");
PrintThread b = new PrintThread("B");
PrintThread c = new PrintThread("C");
new Thread(a).start();
new Thread(b).start();
new Thread(c).start();
}
}
```
在每个线程的run方法中,首先判断计数器是否已经达到每个线程需要打印的次数,如果没有就进行打印操作。使用synchronized关键字来保证线程的同步执行,同时使用类锁来保证每个线程都能正确地判断自己是否需要打印。最后通过启动三个线程来交替打印A、B、C。
阅读全文