大富翁角色抢100块地皮 By JAVA 多线程

package syncTest;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;

public class SyncTest {

	public static void main(String[] args) {
		System.out.println("现在举行大富翁抢100块地皮活动!");
		System.out.println("3,2,1,抢地皮活动开始!");
		Sync s = new Sync();
		Thread t1 = new Thread(s,"阿土伯");
		Thread t2 = new Thread(s,"沙隆巴斯");
		Thread t3 = new Thread(s,"宫本宝藏");
		Thread t4 = new Thread(s,"钱夫人");
		Thread t5 = new Thread(s,"孙小美");
		Thread t6 = new Thread(s,"乌咪");
		t1.start();
		t2.start();
		t3.start();
		t4.start();
		t5.start();
		t6.start();
	}
}

class Sync implements Runnable{
	static int tic = 0;
	Map<String,List<Integer>> result = new ConcurrentHashMap<String,List<Integer>>();
	@Override
	synchronized public void run() {
			while(true) {
					if(tic<=100) {
							try {
								System.out.println("恭喜"+Thread.currentThread().getName()+"!抢到第"+(++tic)+"块地皮");
								if(result.containsKey(Thread.currentThread().getName())) {
									List<Integer> list = result.get(Thread.currentThread().getName());
									list.add(tic);
									result.put(Thread.currentThread().getName(),list);
								}else {
									List<Integer> list = new ArrayList<Integer>();
									list.add(tic);
									result.put(Thread.currentThread().getName(),list);
								}
								wait(1);
							} catch (InterruptedException e) {
								e.printStackTrace();
							}
					}
					if(tic>=100) {
						if(Thread.currentThread().getName().equals("阿土伯")) {
							System.out.println("抢地皮活动结束!");
							Set<Entry<String,List<Integer>>> st = result.entrySet();
							Iterator<Entry<String,List<Integer>>> it = st.iterator();
							while(it.hasNext()) {
								Entry<String,List<Integer>> e = it.next();
								System.out.println(e.getKey()+"获得"+e.getValue().size()+"块地皮,地皮号如下:"+Arrays.toString(e.getValue().toArray()));
							}
						}
						break;
					}
			}
	}
	
	
}

(全文完)

猜你喜欢

转载自blog.csdn.net/humors221/article/details/113838252
今日推荐