Java_多线程_简单模拟龟兔赛跑

package cn.thread;

/**
 * 简单模拟龟兔赛跑,旨在理解多线程
 * @author Chill Lyn
 *
 */
public class Racer implements Runnable {
	private String arrival;
	private int distance;

	@Override
	public void run() {
		boolean sleep = true;
		for (distance = 0; distance <= 100; distance++) {
//			模拟兔子随机睡觉,且全程只睡一次
			if (Thread.currentThread().getName().equals("rabbit") && (int) (Math.random() * distance % 10) == 6
					&& sleep) {
				System.out.println("兔子睡觉了");
				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				sleep = false;
			}
			System.out.println(Thread.currentThread().getName() + "已经走了" + distance + "米");
		}
		arrival = Thread.currentThread().getName();
		System.out.println(arrival + "到达终点");

	}

	public static void main(String[] args) {
		Racer tortoise = new Racer();
		Racer rabbit = new Racer();

		new Thread(tortoise, "tortoise").start();
		new Thread(rabbit, "rabbit").start();
	}
}

结果(仅供参考)
tortoise已经走了0米
tortoise已经走了1米
tortoise已经走了2米
tortoise已经走了3米
tortoise已经走了4米
tortoise已经走了5米
tortoise已经走了6米
tortoise已经走了7米
rabbit已经走了0米
tortoise已经走了8米
rabbit已经走了1米
rabbit已经走了2米
rabbit已经走了3米
rabbit已经走了4米
rabbit已经走了5米
tortoise已经走了9米
rabbit已经走了6米
rabbit已经走了7米
tortoise已经走了10米
tortoise已经走了11米
tortoise已经走了12米
tortoise已经走了13米
tortoise已经走了14米
tortoise已经走了15米
tortoise已经走了16米
tortoise已经走了17米
tortoise已经走了18米
tortoise已经走了19米
tortoise已经走了20米
tortoise已经走了21米
tortoise已经走了22米
tortoise已经走了23米
tortoise已经走了24米
tortoise已经走了25米
tortoise已经走了26米
tortoise已经走了27米
tortoise已经走了28米
tortoise已经走了29米
tortoise已经走了30米
tortoise已经走了31米
tortoise已经走了32米
tortoise已经走了33米
rabbit已经走了8米
tortoise已经走了34米
rabbit已经走了9米
tortoise已经走了35米
rabbit已经走了10米
tortoise已经走了36米
rabbit已经走了11米
tortoise已经走了37米
rabbit已经走了12米
rabbit已经走了13米
rabbit已经走了14米
rabbit已经走了15米
rabbit已经走了16米
rabbit已经走了17米
兔子睡觉了
tortoise已经走了38米
tortoise已经走了39米
tortoise已经走了40米
tortoise已经走了41米
tortoise已经走了42米
tortoise已经走了43米
tortoise已经走了44米
tortoise已经走了45米
tortoise已经走了46米
tortoise已经走了47米
tortoise已经走了48米
tortoise已经走了49米
tortoise已经走了50米
tortoise已经走了51米
tortoise已经走了52米
tortoise已经走了53米
tortoise已经走了54米
tortoise已经走了55米
tortoise已经走了56米
tortoise已经走了57米
tortoise已经走了58米
tortoise已经走了59米
tortoise已经走了60米
tortoise已经走了61米
tortoise已经走了62米
tortoise已经走了63米
tortoise已经走了64米
tortoise已经走了65米
tortoise已经走了66米
tortoise已经走了67米
tortoise已经走了68米
tortoise已经走了69米
tortoise已经走了70米
tortoise已经走了71米
tortoise已经走了72米
tortoise已经走了73米
tortoise已经走了74米
tortoise已经走了75米
tortoise已经走了76米
tortoise已经走了77米
tortoise已经走了78米
tortoise已经走了79米
tortoise已经走了80米
tortoise已经走了81米
tortoise已经走了82米
tortoise已经走了83米
tortoise已经走了84米
tortoise已经走了85米
tortoise已经走了86米
tortoise已经走了87米
tortoise已经走了88米
tortoise已经走了89米
tortoise已经走了90米
tortoise已经走了91米
tortoise已经走了92米
tortoise已经走了93米
tortoise已经走了94米
tortoise已经走了95米
tortoise已经走了96米
tortoise已经走了97米
tortoise已经走了98米
tortoise已经走了99米
tortoise已经走了100米
tortoise到达终点
rabbit已经走了18米
rabbit已经走了19米
rabbit已经走了20米
rabbit已经走了21米
rabbit已经走了22米
rabbit已经走了23米
rabbit已经走了24米
rabbit已经走了25米
rabbit已经走了26米
rabbit已经走了27米
rabbit已经走了28米
rabbit已经走了29米
rabbit已经走了30米
rabbit已经走了31米
rabbit已经走了32米
rabbit已经走了33米
rabbit已经走了34米
rabbit已经走了35米
rabbit已经走了36米
rabbit已经走了37米
rabbit已经走了38米
rabbit已经走了39米
rabbit已经走了40米
rabbit已经走了41米
rabbit已经走了42米
rabbit已经走了43米
rabbit已经走了44米
rabbit已经走了45米
rabbit已经走了46米
rabbit已经走了47米
rabbit已经走了48米
rabbit已经走了49米
rabbit已经走了50米
rabbit已经走了51米
rabbit已经走了52米
rabbit已经走了53米
rabbit已经走了54米
rabbit已经走了55米
rabbit已经走了56米
rabbit已经走了57米
rabbit已经走了58米
rabbit已经走了59米
rabbit已经走了60米
rabbit已经走了61米
rabbit已经走了62米
rabbit已经走了63米
rabbit已经走了64米
rabbit已经走了65米
rabbit已经走了66米
rabbit已经走了67米
rabbit已经走了68米
rabbit已经走了69米
rabbit已经走了70米
rabbit已经走了71米
rabbit已经走了72米
rabbit已经走了73米
rabbit已经走了74米
rabbit已经走了75米
rabbit已经走了76米
rabbit已经走了77米
rabbit已经走了78米
rabbit已经走了79米
rabbit已经走了80米
rabbit已经走了81米
rabbit已经走了82米
rabbit已经走了83米
rabbit已经走了84米
rabbit已经走了85米
rabbit已经走了86米
rabbit已经走了87米
rabbit已经走了88米
rabbit已经走了89米
rabbit已经走了90米
rabbit已经走了91米
rabbit已经走了92米
rabbit已经走了93米
rabbit已经走了94米
rabbit已经走了95米
rabbit已经走了96米
rabbit已经走了97米
rabbit已经走了98米
rabbit已经走了99米
rabbit已经走了100米
rabbit到达终点

你可能感兴趣的:(JUC)