今天在腾讯课堂看马士兵老师的课时,遇到如下问题,运用多线程交替输出1A2B3C…26Z,其中提到一个新名词:Lambda表达式。
import java.util.concurrent.locks.LockSupport;
public class TestLockSupport {
public static Thread t1 = null;
public static Thread t2 = null;
public static void main(String[] args) {
// TODO Auto-generated method stub
// Thread t1 = null; 这里t1需放在外面定义,因为内部类不能调用非fianl变量。
// Thread t2 = null;
char[] aI = "1234567".toCharArray();
char[] cI = "ABCDEFG".toCharArray();
t1 = new Thread(()->{
for(char c:aI) {
System.out.print(c);
LockSupport.unpark(t2);
LockSupport.park();
}
});
t2 = new Thread(()-> {
for(char c:cI) {
LockSupport.park();
System.out.print(c);
LockSupport.unpark(t1);
}
});
t1.start();
t2.start();
}
}
直接附上查找到的连接Lambda表达式。