某公司组织年会,会议入场时有两个入口,在入场时每位员工都能获取一张双色球彩票,假设公司有100个员工,利用多线程模拟年会入场过程....

某公司组织年会,会议入场时有两个入口,在入场时每位员工都能获取一张双色球彩票,假设公司有100个员工,利用多线程模拟年会入场过程,
    并分别统计每个入口入场的人数,以及每个员工拿到的彩票的号码。线程运行后打印格式如下:
    编号为: 2 的员工 从后门 入场! 拿到的双色球彩票号码是: [17, 24, 29, 30, 31, 32, 07]
    编号为: 1 的员工 从后门 入场! 拿到的双色球彩票号码是: [06, 11, 14, 22, 29, 32, 15]
    //.....

public class RuChangThread implements Runnable {
	int ID;//员工id
	String lottery;//彩票号码
	
	public RuChangThread(int iD, String lottery) {
		super();
		ID = iD;
		this.lottery = lottery;
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		ruChang();
	}
	public synchronized void ruChang() {
		System.out.println("编号为:"+ID+" 的员工 从"+Thread.currentThread().getName()+" 入场! 拿到的双色球彩票号码是: "+lottery);
		try {//可以没有,写是为了看清入场
			Thread.sleep(500);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
import java.util.ArrayList;

import com.qf.xc.RuChangThread;

public class RuChangTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		RuChangThread ruChangThread;//定义入场的线程
		Thread fDoor;//前门线程
		Thread bDoor;//后门线程
		boolean isDoor=true;//判断前后门进场
		for (int i = 0; i < 100; i++) {//100个员工
			int ID=(int)(Math.random()*100+1);//随机生成一个员工
			ArrayList<Integer> lottery=new ArrayList<>();//定义彩票的number
			StringBuffer sBuffer=new StringBuffer("[");
			for (int j = 0; j < 7; j++) {
				lottery.add((int)(Math.random()*32));
				if (j!=7) {
					sBuffer.append(lottery.get(j)+",");
				}else {
					sBuffer.append(lottery.get(j));
				}
			}
			sBuffer.append("]");
			ruChangThread=new RuChangThread(ID, lottery.toString());
			fDoor=new Thread(ruChangThread,"前门");
			bDoor=new Thread(ruChangThread,"后门");
			if (isDoor) {
				fDoor.start();
			} else {
				bDoor.start();
			}
			isDoor=!isDoor;
		}
		
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值