概述
好记性不如赖笔头…………
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资源,直到线程执行完毕。
最后
以上就是温暖音响为你收集整理的JAVA线程中join方法可以强占CPU资源直至执行结束的全部内容,希望文章能够帮你解决JAVA线程中join方法可以强占CPU资源直至执行结束所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复