多线程

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

1. Thread类

package com.hanqi.xc;

 

import java.util.*;

 

public class XuanZeChengShi 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)

            {

                // TODO 自动生成的 catch 块

                e.printStackTrace();

            }

            //当某个线程输出到第10个的时候    得到要去的城市 并直接结束

            if(i==9)

            {

                System.out.println("我想去"+this.getName());

                System.exit(0);

            }

        }

      

    }

    

    public static void main(String[] args) {

        

        

        XuanZeChengShi city1=new XuanZeChengShi();

        city1.setName("北京");      

        city1.start();

    

        

        XuanZeChengShi city2=new XuanZeChengShi();

        city2.setName("上海");       

        city2.start();

    

            

        }   

    

}

2.Runnable接口

package com.hanqi.xc;

 

import java.util.Random;

 

public class XuanZeChengShi2 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) {


          XuanZeChengShi2 city1=new XuanZeChengShi2();
          Thread t1 = new Thread(city1,"北京") ; 
          t1.start();


          XuanZeChengShi2 city2=new XuanZeChengShi2();
          Thread t2 = new Thread(city2,"上海") ; 
          t2.start();

 

    

            

        }   

 

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值