三个线程顺序打印 ABC 三个字母

public class Main {

    public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {
            new Thread(new Printer(i), String.valueOf((char) (i + 'A'))).start();
        }
    }

    static class Printer implements Runnable {
        private int id;
        static int count;

        public Printer(int id) {
            this.id = id;
        }

        @Override
        public void run() {
            for (int i = 0; i < 10; i++) {
                synchronized (Printer.class) {
                    while (count % 3 != id) {
                        try {
                            Printer.class.wait();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    System.out.println(Thread.currentThread().getName());
                    Printer.count++;
                    Printer.class.notifyAll();
                }
            }
        }
    }
}
全部评论

相关推荐

06-26 15:35
武汉大学 运营
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-24 14:18
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
ZywOo_求职版:谁问你了....
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务