Java有两个线程都循环输出1-10,启动这两个线程后,使得输出112233.....

小熊博客
2021-08-12 / 0 评论 / 249 阅读
温馨提示:
本文最后更新于2021-08-12,若内容或图片失效,请留言反馈。

利用Java线程工具类LockSupport

LockSupport.pack()//阻塞当前线程

LockSupport.unpack()//指定线程解除阻塞

解答如下

        static Thread t1, t2;
        public static void main(String[] args) {
            t1 = new Thread(() -> {
                for (int i = 1; i <= 10; i++) {
                    System.out.println(i);
                    LockSupport.unpark(t2);
                    LockSupport.park();
                }
            });
            t2 = new Thread(() -> {
                for (int i = 1; i <= 10; i++) {
                    LockSupport.park();
                    System.out.println(i);
                    LockSupport.unpark(t1);
                }
            });
            t1.start();
            t2.start();
        }