join()方法等待线程死亡。换句话说, 它导致当前正在运行的线程停止执行, 直到与之连接的线程完成其任务为止。
句法:
public void join()throws InterruptedException |
public void join(long milliseconds)throws InterruptedException |
class TestJoinMethod1 extends Thread{
public void run(){
for(int i=1;
i<
=5;
i++){
try{
Thread.sleep(500);
}catch(Exception e){System.out.println(e);
}
System.out.println(i);
}
}
public static void main(String args[]){
TestJoinMethod1 t1=new TestJoinMethod1();
TestJoinMethod1 t2=new TestJoinMethod1();
TestJoinMethod1 t3=new TestJoinMethod1();
t1.start();
try{
t1.join();
}catch(Exception e){System.out.println(e);
} t2.start();
t3.start();
}
}
立即测试
Output:1
2
3
4
5
1
1
2
2
3
3
4
4
5
5
如上例所示, 当t1完成其任务时, t2和t3开始执行。 |
class TestJoinMethod2 extends Thread{
public void run(){
for(int i=1;
i<
=5;
i++){
try{
Thread.sleep(500);
}catch(Exception e){System.out.println(e);
}
System.out.println(i);
}
}
public static void main(String args[]){
TestJoinMethod2 t1=new TestJoinMethod2();
TestJoinMethod2 t2=new TestJoinMethod2();
TestJoinMethod2 t3=new TestJoinMethod2();
t1.start();
try{
t1.join(1500);
}catch(Exception e){System.out.println(e);
} t2.start();
t3.start();
}
}
立即测试
Output:1
2
3
1
4
1
2
5
2
3
3
4
4
5
5
在上面的示例中, 当t1完成其任务1500毫秒(3次)后, t2和t3开始执行。 |
public String getName() |
public void setName(String name) |
public long getId() |
class TestJoinMethod3 extends Thread{
public void run(){
System.out.println("running...");
}
public static void main(String args[]){
TestJoinMethod3 t1=new TestJoinMethod3();
TestJoinMethod3 t2=new TestJoinMethod3();
System.out.println("Name of t1:"+t1.getName());
System.out.println("Name of t2:"+t2.getName());
System.out.println("id of t1:"+t1.getId());
t1.start();
t2.start();
t1.setName("Sonoo Jaiswal");
System.out.println("After changing name of t1:"+t1.getName());
}
}
【线程join()方法】立即测试
Output:Name of t1:Thread-0
Name of t2:Thread-1
id of t1:8
running...
After changling name of t1:Sonoo Jaiswal
running...
currentThread()方法:
currentThread()方法返回对当前正在执行的线程对象的引用。 |
public static Thread currentThread() |
class TestJoinMethod4 extends Thread{
public void run(){
System.out.println(Thread.currentThread().getName());
}
}
public static void main(String args[]){
TestJoinMethod4 t1=new TestJoinMethod4();
TestJoinMethod4 t2=new TestJoinMethod4();
t1.start();
t2.start();
}
}
立即测试
Output:Thread-0
Thread-1
推荐阅读
- Java线程池介绍和实例
- Java Runtime类
- Java中的线程间通信
- Java中断线程
- win10系统隐藏库文件夹图文详细教程
- 升级Win10后office用不了怎样处理?
- Win10磁盘占用100%处理办法
- Win10蓝屏出错0x0000003B怎样办
- Win10隐藏任意程序运行界面图文详细教程