zoukankan      html  css  js  c++  java
  • java两个线程交替打印数字

    实现方法

    通过Object的通信wait,notify来实现两个线程的功能

    原理:
    需要一把锁,和一个可以通信的类,用锁来控制两个线程的竞争,用通信类来让线程 等待 和 唤醒

    public static void main(String[] args) {
            // 创建锁对象
            final Object object = new Object();
            // 创建线程A,开启线程
            new Thread(() -> {
                for (int i = 1; i < 100; i++) {
                    synchronized (object) {
                        System.out.println(Thread.currentThread().getName() + " " + i);
                        object.notify();
                        try {
                            object.wait();
                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                }
            }, "A").start();
    
            // 创建线程B
            new Thread(() -> {
                for (int i = 1; i < 100; i++) {
                    synchronized (object) {
                        System.out.println(Thread.currentThread().getName() + " " + i);
                        object.notify();
                        try {
                            object.wait();
                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                }
            }, "B").start();
        }
    
  • 相关阅读:
    springdataJpa对无主键表或视图查询的支持
    Blynk系列随笔
    arduino系列文章
    Debezium系列随笔
    Kafka系列随笔
    SSAS 收藏
    Saiku 系列
    Mondrian系列
    数据仓库理论学习
    加密解密
  • 原文地址:https://www.cnblogs.com/inkyi/p/15737324.html
Copyright © 2011-2022 走看看