定义方法,接收字符串,for循环 charAt打印,两个线程,第一个线程,遍历出8个A,第二个线程遍历出八个B,调用同一个方法
时间: 2024-04-07 22:33:13 浏览: 48
好的,下面是用Java定义的方法,可以接收一个字符串,并使用两个线程同时调用该方法进行打印,第一个线程遍历打印8个'A',第二个线程遍历打印8个'B':
```java
public class Main {
public static void main(String[] args) {
String str = "AB";
PrintThread thread1 = new PrintThread(str, 'A', 8);
PrintThread thread2 = new PrintThread(str, 'B', 8);
thread1.start();
thread2.start();
}
static class PrintThread extends Thread {
private final String str;
private final char ch;
private final int count;
public PrintThread(String str, char ch, int count) {
this.str = str;
this.ch = ch;
this.count = count;
}
@Override
public void run() {
printString(str, ch, count);
}
private synchronized void printString(String str, char ch, int count) {
for (int i = 0; i < count; i++) {
for (int j = 0; j < str.length(); j++) {
System.out.print(ch);
}
}
System.out.println();
}
}
}
```
以上代码定义了一个 `PrintThread` 类,该类继承自 `Thread` 类,并且在 `run` 方法中调用了 `printString` 方法。`printString` 方法使用 synchronized 修饰符来保证线程安全,以确保两个线程不会同时访问该方法。在 `printString` 方法内部,使用嵌套的 for 循环和 `charAt` 方法来打印指定字符多次。
通过创建两个 `PrintThread` 对象,并调用其 `start` 方法,可以启动两个线程同时调用 `printString` 方法打印相应的字符。第一个线程打印8个'A',第二个线程打印8个'B'。输出结果将是字符按顺序打印出来。
希望对你有所帮助!如果还有其他问题,请继续提问。
阅读全文