Skip to content

Latest commit

 

History

History
45 lines (32 loc) · 1.01 KB

File metadata and controls

45 lines (32 loc) · 1.01 KB

贡献者:Almost-Famous

##题目 使用俩个线程交替打印数字与字符串 1A2B3C4D5E6F7G...27Z

##分析 打印完当前任务后,唤醒另外一个线程,阻塞当前线程,另一个线程执行完毕后再唤醒第一个线程执行,保持阻塞。

##编码

public class Sync_LockSupport {

    private static Thread t1 = null, t2 = null;

    public static void main(String[] args) {

        char[] arr1 = "1234567".toCharArray();
        char[] arr2 = "ABCDEFG".toCharArray();

        t1 = new Thread(() -> {
            for (char a : arr1) {
                System.out.print(a);
                LockSupport.unpark(t2);
                LockSupport.park();
            }
        }, "t1");

        t2 = new Thread(() -> {
            for (char b : arr2){
                LockSupport.park();
                System.out.print(b);
                LockSupport.unpark(t1);
            }
        }, "t2");

        t1.start();
        t2.start();

    }

}

##结尾