没有加入join
package Week8;
public class ThreadJoin extends Thread {
private static int[] arr = new int[5];
public void run(){
for(int i = 0; i<5;i++){
System.out.println("正在运行线程");
}
}
public static void main(String[] args) {
ThreadJoin a = new ThreadJoin();
InviArr(5);//初始化数组
a.start();
// try{
// a.join();
// }catch(InterruptedException e){
// e.printStackTrace();
// }
PrintArr();
}
private static void PrintArr() {
int i = 0 ;
for(int n:arr)
System.out.print("\nPrintArr a["+i+++"]="+n);
}
private static void InviArr( int n) {
int i=0;
while(i<n)
arr[i++]=(int)(Math.random()*1000);
}
}
运行结果为
加入join方法
package Week8;
public class ThreadJoin extends Thread {
private static int[] arr = new int[5];
public void run(){
for(int i = 0; i<5;i++){
System.out.println("正在运行线程");
}
}
public static void main(String[] args) {
ThreadJoin a = new ThreadJoin();
InviArr(5);//初始化数组
a.start();
try{
a.join();
}catch(InterruptedException e){
e.printStackTrace();
}
PrintArr();
}
private static void PrintArr() {
int i = 0 ;
for(int n:arr)
System.out.print("\nPrintArr a["+i+++"]="+n);
}
private static void InviArr( int n) {
int i=0;
while(i<n)
arr[i++]=(int)(Math.random()*1000);
}
}
运行结果为
本文通过一个具体的Java代码示例,深入解析了线程中join方法的作用与使用场景。对比了使用与未使用join方法时,主线程等待子线程完成行为的差异,帮助读者理解如何有效控制线程执行顺序。
734

被折叠的 条评论
为什么被折叠?



