问答详情
源自:2-4 Java线程-隋唐演义实战开发---军队

攻击次序问题

我自己运行的代码,起义军和隋军几乎是交替执行,而且开始的时候不是从0开始的

提问者:丶Demons 2016-08-01 12:00

个回答

  • 慕函数7024581
    2016-08-01 14:13:23
    已采纳

    线程是通过抢占CPU资源去运行的,随机交替着是随机的现象;至于不是从0开始,可以通过代码的调试,去看i的变化。

  • 丶Demons
    2016-08-01 14:58:08

    不是从零开始的问题是数据太大,无法显示那么多,不过为什么我的代码没有出现过单方面连击的情况,都是交替进行的

  • 丶Demons
    2016-08-01 14:55:23

    package com.haha;
    
    public class ArmyRunnable implements Runnable {
    
    	volatile boolean keepRuning = true;
    
    	@Override
    	public void run() {
    
    		while(keepRuning){
    			for (int i = 0; i < 5; i++){
    				System.out.println(Thread.currentThread().getName() + "攻击[" + (i+1) + "]");
    				
    				//让出处理器时间
    				Thread.yield();
    			}
    		}
    		
    		System.out.println(Thread.currentThread().getName() + "结束战斗");
    	}
    
    }


  • nerddai
    2016-08-01 14:12:14

    volatile 写了吗?代码怎么写的