使用conditionn
public static void main(String[] args) {
ReentrantLock lock = new ReentrantLock();
Condition condition1 = lock.newCondition();
Condition condition2 = lock.newCondition();
new Thread(() -> {
int i = 'a';
while (i <= 'z') {
lock.lock();
int[] arr = {'a', 'e', 'i', 'o', 'u'};
if (juge(arr, i)) {
try {
i++;
condition2.signal();
condition1.await();
} catch (InterruptedException e) {
e.printStackTrace();
}finally {
lock.unlock();
}
}
System.out.println("线程1"+(char)i);
i++;
}
}).start();
new Thread(() -> {
lock.lock();
try {
int[] a

这篇博客介绍了如何在Java中使用条件变量(condition)和锁(lock)来实现两个线程分别打印26个字母中的元音和辅音,并确保输出按字母顺序排列。同时,提到了条件变量必须在锁的作用域内使用,以避免异常。另外,还提及了利用管道(Pipe)来传递线程间的数据。
最低0.47元/天 解锁文章
637

被折叠的 条评论
为什么被折叠?



