温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-10-14 10:57:28 来源:亿速云 阅读:154 作者:iii 栏目:编程语言

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

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();
    }

}

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI