多线程---join---模拟打麻将

join //加入,让线程加入到当前线程.

public final void join()

多线程join 方法

void join() 等待该线程终止。

void join(long millis) 等待该线程终止的时间最长为millis 毫秒。

特点:当A 线程走到B 线程的join 方法时,A 就会等待B 线程都执行完,A 才会执行

作用: join 可以用来临时加入线程执行;


需求:模拟打麻将

package java.thread;

/**
 *join		//加入,让线程加入到当前线程.
 */
public class ThreadJoinDemo {
    public static void main(String[] args) {
        Player p1 = new Player("张三",1);
        Player p2 = new Player("李四", 3);
        Player p3 = new Player("王五", 5);
        Player p4 = new Player("赵六", 6);
        p1.start();
        p2.start();
        p3.start();
        p4.start();

        try {
            p1.join();
            p2.join();
            p3.join();
            p4.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("开局");

    }
    
}


class Player extends Thread{
    private  String name0;
    private  int sleep;

    public String getName0() {
        return name0;
    }

    public void setName0(String name0) {
        this.name0 = name0;
    }

    public int getSleep() {
        return sleep;
    }

    public void setSleep(int sleep) {
        this.sleep = sleep;
    }

    public Player(String name0, int sleep) {
        this.name0 = name0;
        this.sleep = sleep;
    }

    @Override
    public void run() {
        try {
            System.out.println(name0+"出发了");
            Thread.sleep(sleep*1000);
            System.out.println(name0 + "到了"+"耗时"+sleep+"秒");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }


    }
}

模拟结果:

张三出发了
李四出发了
赵六出发了
王五出发了
张三到了耗时1秒
李四到了耗时3秒
王五到了耗时5秒
赵六到了耗时6秒
开局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值