Java面试题
开启两个线程池,打印1-10,线程A打印奇数(1,3,5,7,9),线程B打印偶数(2,4,6,8,10)
public class LockSupportDemo {
static Thread A;
static Thread B;
public static void main(String[] args) {
A = new Thread(()->{
for (int i=1;i<=9;i+=2){
System.out.println(i);
LockSupport.unpark(B);
LockSupport.park();
}
});
B = new Thread(()->{
for (int i= 2;i<=10;i=i+2){
LockSupport.park();
System.out.println(i);
LockSupport.unpark(A);
}
});
//开启线程
A.start();
B.start();
}
}
LockSupport
是一个线程阻塞工具类,所有的方法都是静态方法,可以让线程在任意位置阻塞,当然阻塞之后肯定得有唤醒的方法。
LockSupport 提供park()和unpark()方法实现阻塞线程和解除线程阻塞