码迷,mamicode.com
首页 > 编程语言 > 详细

Java多线程练习去那个城市

时间:2016-06-04 09:14:47      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

 随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
 
1、Thread类
 
import java.util.*;

public class City extends Thread {

	@Override
	public void run() {

		test();
	}

	public void test() {
		// 随机数 随机出休眠时间
		Random a = new Random();

		for (int i = 0; i < 10; i++) {
			int b = a.nextInt(1000);
			System.out.println(this.getName());
			// System.out.println(b);
			try {

				Thread.sleep(b);

			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			// 当某个线程输出到第10个的时候 得到要去的城市 并直接结束
			if (i == 9) {
				System.out.println("我想去" + this.getName());
				System.exit(0);
			}
		}

	}

	public static void main(String[] args) {

		City city1 = new City();
		city1.setName("淄博");
		city1.start();

		City city2 = new City();
		city2.setName("济南");
		city2.start();

	}

}

  

运行结果

技术分享

 

 

2、Runnable接口

 

import java.util.*;
public class City2 implements Runnable {

	 @Override
	    public void run() {
	        //随机数  随机出休眠时间
	                Random a=new Random();        
	                        
	                for (int i = 0; i < 10; i++) 
	                { 
	                    int b=a.nextInt(1000);            
	                    System.out.println(Thread.currentThread().getName());
	                    //System.out.println(b);
	                    try 
	                    {
	                        
	                        Thread.sleep(b);
	                        
	                        
	                    } 
	                    catch (InterruptedException e) 
	                    {
	                        // TODO 自动生成的 catch 块
	                        e.printStackTrace();
	                    }
	                    //当某个线程输出到第10个的时候    得到要去的城市 并直接结束
	                    if(i==9)
	                    {
	                        System.out.println("我想去"+Thread.currentThread().getName());
	                        System.exit(0);
	                    }
	                }

	    }    
	        public static void main(String[] args) {
	        
	        
	        City city1=new City();
	        city1.setName("济南");      
	        city1.start();
	    
	        
	        City city2=new City();
	        city2.setName("淄博");       
	        city2.start();
	    
	            
	        }   

}

  

运行结果

技术分享

Java多线程练习去那个城市

标签:

原文地址:http://www.cnblogs.com/mutougezi/p/5558107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!