Java多线程练习去那个城市

Posted 木头鸽子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程练习去那个城市相关的知识,希望对你有一定的参考价值。

 随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示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多线程练习去那个城市的主要内容,如果未能解决你的问题,请参考以下文章

java线程练习 选择城市

java 线程练习题1

线程练习

城市线程练习题后续

java多线程练习题

Java 多线程练习