今天在腾讯课堂看马士兵老师的课时,遇到如下问题,运用多线程交替输出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表达式。
本文探讨了如何使用Java的Lambda表达式和LockSupport类实现两线程交替输出数字和字母,从1A到26Z的过程。通过具体代码示例,展示了Lambda表达式在多线程控制中的应用。
891

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



