java 基础--多线程基础练习

Posted

tags:

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

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

import java.util.Random;

//多线程类
//1.是Thread的子类
//2.重写run方法
public class Test01 extends Thread{

    @Override
    public void run() {
        
        
        for(int i=0;i<10;i++)
        {
            System.out.println(Thread.currentThread().getName());

            Random ran = new Random();
            int a1=ran.nextInt(1000);
            try {
                Thread.sleep(a1);
            } catch (InterruptedException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
    }

    
}
public class Test02 {

    public static void main(String[] args) {
        Test01 t1 = new Test01();
        t1.setName("重庆");
        t1.start();
        Test01 t2 = new Test01();
        t2.setName("四川");
        t2.start();
        
    }

}

技术分享

import java.util.Random;

public class Test03 implements Runnable {

    @Override
    public void run() {
        // TODO 自动生成的方法存根
        for(int i=0;i<10;i++)
        {
            System.out.println(Thread.currentThread().getName());
            Random ran = new Random();
            int a1=ran.nextInt(1000);
            try {
                Thread.sleep(a1);
            } catch (InterruptedException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
    }

}
import com.hanqi.test.Test03;

public class Test04 {

    public static void main(String[] args) {
        // 启动接口方式的多线程
        //不能直接启动
        Test03  t3 =new Test03();
        //需要构造Thread,把Runnable的实现类的实例给他
        Thread td = new Thread(t3);
        //修改线程的名称
        td.setName("四川");
        //启动线程
        td.start();
        Thread td1= new Thread(t3);
        td1.setName("重庆");
        td1.start();
        
    }

}

技术分享

 

以上是关于java 基础--多线程基础练习的主要内容,如果未能解决你的问题,请参考以下文章

号称史上最全Java多线程与并发面试题总结—基础篇

java基础入门-多线程同步浅析-以银行转账为样例

IT十八掌作业_java基础第九天_多线程自动拆装箱

多线程 Thread 线程同步 synchronized

java多线程基础

Java基础之多线程