十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇内容主要讲解“如何实现多线程顺序打印数字”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现多线程顺序打印数字”吧!

成都创新互联2013年至今,是专业互联网技术服务公司,拥有项目网站设计、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元振兴做网站,已为上家服务,为振兴各地企业和个人服务,联系电话:13518219792
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();
}
}到此,相信大家对“如何实现多线程顺序打印数字”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!