Java教程

java面试题之交替打印t1t2,sync版

本文主要是介绍java面试题之交替打印t1t2,sync版,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

使用多线程交替打印t1t2:

package com.lizhenxin.java0422.b3;

import lombok.extern.java.Log;
import lombok.extern.slf4j.Slf4j;

/**
 * @author lizhenxin
 * @create 2022-04-25-23:34
 */
@Slf4j
public class Wait1 {

    static boolean isLock = false;

    public static void main(String[] args) {
        Thread t1 = new Thread(() -> {

            while (true){
                synchronized (Wait1.class){
                    while (!isLock){
                        try {
                            Wait1.class.wait();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    isLock = false;
                    Wait1.class.notify();
                    log.debug("t1");
                }
            }


        }, "t1");



        Thread t2 = new Thread(() -> {
            while (true){
                synchronized (Wait1.class){
                    while (isLock){
                        try {
                            Wait1.class.wait();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    isLock = true;
                    Wait1.class.notify();
                    log.debug("t2");
                }
            }
        }, "t2");


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


    }
}

 

这篇关于java面试题之交替打印t1t2,sync版的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!