JAVA线程中join方法可以强占CPU资源直至执行结束

好记性不如赖笔头…………

join()方法在API中的说明:

void     join()      等待该线程死亡。  

可以理解为当线程调用了这个方法时,它会强占CPU资源,直到线程执行结果为止。
注意:这里说的是强点,而不是抢占,也就是说当这个线程调用 了join方法后,线程抢占到CPU资源,它就不会再释放,直到线程执行完毕。

示例代码如下:

---------------------------------------------------------------------------继承Thread的子类---------------------------------------------------------------------------

package com.Ckinghan.threadEach;

public class JoinThread extends Thread {

    public JoinThread(String name) {
        super(name);
    }

    @Override
    public void run() {
        for(int i = 0; i < 30; i++){
            System.out.println(this.getName()+" 正在执行:"+i);
        }
    }
}


---------------------------------------------------------------------------测试代码---------------------------------------------------------------------------

package com.Ckinghan.threadEach;

public class JoinDemo {

    public static void main(String[] args) {
        /**
         * 创建三个线程
         */
        JoinThread joinThread = new JoinThread("小二");
        JoinThread joinThread2 = new JoinThread("小三");
        JoinThread joinThread3 = new JoinThread("小四");


        try {
            //启动线程
            joinThread.start();
            //强占CPU资源,直至线程执行结束
            joinThread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        joinThread2.start();

        joinThread3.start();

    }

}


---------------------------------------------------------------------------执行结果---------------------------------------------------------------------------

小二 正在执行:0
小二 正在执行:1
小二 正在执行:2
小二 正在执行:3
小二 正在执行:4
小二 正在执行:5
小二 正在执行:6
小二 正在执行:7
小二 正在执行:8
小二 正在执行:9
小二 正在执行:10
小二 正在执行:11
小二 正在执行:12
小二 正在执行:13
小二 正在执行:14
小二 正在执行:15
小二 正在执行:16
小二 正在执行:17
小二 正在执行:18
小二 正在执行:19
小二 正在执行:20
小二 正在执行:21
小二 正在执行:22
小二 正在执行:23
小二 正在执行:24
小二 正在执行:25
小二 正在执行:26
小二 正在执行:27
小二 正在执行:28
小二 正在执行:29
小三 正在执行:0
小四 正在执行:0
小三 正在执行:1
小三 正在执行:2
小三 正在执行:3
小三 正在执行:4
小三 正在执行:5
小三 正在执行:6
小三 正在执行:7
小三 正在执行:8
小三 正在执行:9
小三 正在执行:10
小三 正在执行:11
小三 正在执行:12
小三 正在执行:13
小四 正在执行:1
小四 正在执行:2
小四 正在执行:3
小四 正在执行:4
小四 正在执行:5
小四 正在执行:6
小四 正在执行:7
小四 正在执行:8
小四 正在执行:9
小四 正在执行:10
小四 正在执行:11
小四 正在执行:12
小四 正在执行:13
小四 正在执行:14
小四 正在执行:15
小四 正在执行:16
小四 正在执行:17
小四 正在执行:18
小四 正在执行:19
小四 正在执行:20
小三 正在执行:14
小三 正在执行:15
小四 正在执行:21
小四 正在执行:22
小四 正在执行:23
小四 正在执行:24
小四 正在执行:25
小四 正在执行:26
小四 正在执行:27
小四 正在执行:28
小四 正在执行:29
小三 正在执行:16
小三 正在执行:17
小三 正在执行:18
小三 正在执行:19
小三 正在执行:20
小三 正在执行:21
小三 正在执行:22
小三 正在执行:23
小三 正在执行:24
小三 正在执行:25
小三 正在执行:26
小三 正在执行:27
小三 正在执行:28
小三 正在执行:29

从上面的结果看出,当线程 “小二”抢取了CPU资源并调用 了join()方法后,它就会一直强占CPU资源,直到线程执行完毕。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值