千家信息网

如何实现多线程顺序打印数字

发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,本篇内容主要讲解"如何实现多线程顺序打印数字",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何实现多线程顺序打印数字"吧!3个线程,分别负责打印3的倍数、
千家信息网最后更新 2025年11月16日如何实现多线程顺序打印数字

本篇内容主要讲解"如何实现多线程顺序打印数字",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何实现多线程顺序打印数字"吧!

3个线程,分别负责打印3的倍数、5的倍数、其他;要求整体按顺序打印出1~100,不可重复

public class Printor implements Runnable {    //对象锁    private static final Object Lock = new Object();    //需要打印的数字    public static int i = 1;    //打印mod的倍数,-1代表其他    int mod ;    private Printor (int mod){this.mod=mod;}    @Override    public void run() {        synchronized (Lock){            while (i<101){                //不满足当前线程负责的条件,则等待                if( (mod==3 && i%mod!=0)                        || (mod==5 && i%mod!=0)                        || (mod== -1 && (i%3==0 || i%5==0) ) ){                    try {                        Lock.wait();                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }else{                    //满足条件,则打印,同时唤醒其他线程                    System.out.println(i++);                    Lock.notifyAll();                }            }        }    }    public static void main(String[] args) {        new Thread(new Printor(3)).start();        new Thread(new Printor(5)).start();        new Thread(new Printor(-1)).start();    }}

到此,相信大家对"如何实现多线程顺序打印数字"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0