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

package homework001;

import java.util.Random;

public class Change implements Runnable 
{
    
    private int j = 0;
                    
    public int getJ() {
        return j;
    }

    public void setJ(int j) {
        this.j = j;
    }

    public void run()
    {
        //change();
        //程序中定义了一个变量s,可以通过s来求各个线程的运行时间,此步在本题中没有用处,可以省略
        Random ran = new Random();        
        for(int i =0;i<10;i++)
        {    int s = ran.nextInt(1000);        
            System.out.println(i+1+Thread.currentThread().getName());
            try {
                Thread.sleep(s);
                j+=s;
            } catch (InterruptedException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            if(i==9)
            {
                System.out.println("我想去:"+Thread.currentThread().getName());
                
            }
            
        }
        System.out.println(Thread.currentThread().getName()+"线程运行的总时间为:"+j+"ms");
        System.exit(0);//只要有一个线程执行到此,其余线程停止
        
    }

}
package homework001;

import java.util.Random;

public class Text 
{

    public static void main(String[] args) 
    {
                        
        Change cg = new Change();
        
        Thread tr1 = new Thread(cg,"昆明");
        
        tr1.start();
        
        Thread tr2 = new Thread(cg,"大理");
        
        tr2.start();
        

    }

}

 

posted @ 2016-09-29 09:01  HRZJ  阅读(314)  评论(0编辑  收藏  举报