join方法和线程终止的三大方法
线程终止的方法
1、join(方法)
join()方法,其实是线程间通信的一种方法
如果在主线程中调用该方法,会让主线程休眠,
让调用该方法的线程执行完毕后再恢复执行主线程
从运行态到阻塞态 join(),会释放对象锁
阻塞态到就绪态 join()线程执行完毕
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
class MyThread implements Runnable{
@Override
public void run() {
for(int i=0;i<3;i++){
System.out.println(Thread.currentThread().getName()+"、"+i);
}
}
}
public class Test {
public static void main(String[] args) {
System.out.println("main线程开始");
MyThread myThread=new MyThread();
new Thread(myThread,"子线程A").start();
System.out.println("main线程结束");
}
public static void PrintTime(){
Date date=new Date();
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str=dateFormat.format(date);
System.out.println(str);
}
}
运行结果:
在我们进行调用join()方法之前,我们发现,主线程,子线程,自己调用自己的线程
join方法只是对于object提供的wait()做了一层封装。
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
class MyThread implements Runnable{
@Override
public