博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
各个线程顺序循环执行
阅读量:5856 次
发布时间:2019-06-19

本文共 2446 字,大约阅读时间需要 8 分钟。

问题描述:A任务执行完之后执行B任务,B任务执行之后再执行C任务,C任务执行完之后A再执行任务,以此循环下去

Task

1 package com.ydd.work.concurrent; 2  3 import java.util.concurrent.atomic.AtomicInteger; 4 /** 5  *  6  * @author yunzhu.ydd 7  * 8  */ 9 public  class Task extends  Thread {10 11     protected AtomicInteger flag;12     private int number;13     private int id;14     public Task( AtomicInteger flag,int number,int id)15     {16         this.flag=flag;17         this.number=number;18         this.id=id;19     }20    @Override21     public void run() {22      while(!Thread.interrupted())23      {24          synchronized(flag)25          {26              while(flag.get()!=id)27              {28                  try {29                     flag.wait();30                 } catch (InterruptedException e) {31                     // TODO Auto-generated catch block32                     e.printStackTrace();33                 }34              }35           }36          System.out.println("第"+id+"个任务在执行....");37          //其他的任务38          synchronized(flag)39          {40           flag.set((flag.get()+1)%number);41            flag.notifyAll();42          }43      }44 45     }46 47 }

Main

package com.ydd.work.concurrent;import java.util.concurrent.atomic.AtomicInteger;/** *  * @author yunzhu.ydd * */public  class Task extends  Thread {	protected AtomicInteger flag;	private int number;	private int id;	public Task( AtomicInteger flag,int number,int id)	{		this.flag=flag;		this.number=number;		this.id=id;	}   @Override	public void run() {	 while(!Thread.interrupted())	 {		 synchronized(flag)		 {			 while(flag.get()!=id)			 {				 try {					flag.wait();				} catch (InterruptedException e) {					// TODO Auto-generated catch block					e.printStackTrace();				}			 }          }	     System.out.println("第"+id+"个任务在执行....");		 //其他的任务		 synchronized(flag)		 {		  flag.set((flag.get()+1)%number);		   flag.notifyAll();		 }	 }	}}

  结果:

第2个任务在执行....

第3个任务在执行....
第4个任务在执行....
第5个任务在执行....
第6个任务在执行....
第7个任务在执行....
第8个任务在执行....
第9个任务在执行....
第0个任务在执行....
第1个任务在执行....
第2个任务在执行....
第3个任务在执行....
第4个任务在执行....
第5个任务在执行....
第6个任务在执行....
第7个任务在执行....
第8个任务在执行....
第9个任务在执行....
第0个任务在执行....
第1个任务在执行....
第2个任务在执行....
第3个任务在执行....
第4个任务在执行....
第5个任务在执行....
第6个任务在执行....
第7个任务在执行....
第8个任务在执行....
第9个任务在执行....
第0个任务在执行....
第1个任务在执行....
第2个任务在执行....
第3个任务在执行....
第4个任务在执行....
第5个任务在执行....
第6个任务在执行....
第7个任务在执行....
第8个任务在执行....
第9个任务在执行....

转载于:https://www.cnblogs.com/YDDMAX/p/5283732.html

你可能感兴趣的文章
智能化需求促进安防行业进一步升级
查看>>
Amazon Go 又添新伙伴,松下电器推出自动收银台(附视频)
查看>>
无人机供网计划中止:Facebook在印度欲推Express Wifi收费网络计划
查看>>
开年发力!华为FusionServer 2路服务器Java应用性能领先
查看>>
对现有城市环境不满 孵化器Y Combinator打算自己建座城
查看>>
MSP:为云计算客户解除后顾之忧
查看>>
我国智能安防细分市场规模分析
查看>>
新型城镇化提质扩容 打造民村智慧城市
查看>>
密歇根州立大学被黑 个人信息和社保号码被盗
查看>>
光速创投狂赚20亿!Snap上市成就下一个“红杉”
查看>>
使用函数计算来打包下载OSS文件
查看>>
你们是不是真的很缺大数据工程师?
查看>>
乔布斯复活也难改变苹果现状?
查看>>
飞利浦与华为企业云战略合作,共同打造健康全程关护云
查看>>
互联网大会闭幕 智慧城市亮点受关注
查看>>
大数据时代的安全问题 先污染后治理
查看>>
企业协作工具 Slack 与 Salesforce 进行深度合作, 将企业服务进行到底
查看>>
手机回收调查:个人信息保护和环保是公众顾虑
查看>>
部署IaaS之IaaS真实案例及注意事项
查看>>
WAPI产业联盟:中国两项近场通信NFC安全技术成国际标准
查看>>