package com.atguigu.test;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
class ShareData {
private char a ='A';
private Lock lock = new ReentrantLock();
private Condition condition = lock.newCondition();
public void getNum(){
lock.lock();
try {
for(int i=1;i<=52;i++){
System.out.print(i);
if(i%2 == 0){
condition.await();
}
condition.signalAll();
}
} catch (Exception e) {
}finally{
lock.unlock();
}
}
public void getD(){
lock.lock();
try {
for(int i=1;i<=26;i++){
System.out.print(a++);
condition.signalAll();
condition.await();
}
} catch (Exception e) {
}finally{
lock.unlock();
}
}
}
public class Arrange {
public static void main(String[] args) {
ShareData s =new ShareData();
new Thread(() -> {
s.getNum();
},"num").start();
new Thread(() -> {
s.getD();
},"D").start();
}
}
用Lambda表达式解决面试题java两种线程,一个线程打印 1~52,另一个线程打印字母A-Z,打印顺序为12A34B56C……5152Z。
最新推荐文章于 2024-06-29 18:54:53 发布