根据sun解释,线程生命周期在java中有以下几种状态:初始(NEW) ,运行(RUNNABLE),阻塞(BLOCKED),等待(WAITING),超时等待(TIMED_WAITING)和终止(TERMINATED)
一、join方法
join方法为实例方法,源码中都会走join(timeout)方法,该方法是个同步方法,下方调用信息为b线程调用a线程实例的join方法,既b线程获取了Thread锁,根据timeout时间来决定是否处于
wait状态,当超过超时时间,或者a线程执行完毕,才对b线程进行notify;或者根据锁线程实例的isAlive()方法来判断,比如下方,ta线程运行结束了就会唤醒阻塞线程
哪个线程里调用就会阻塞哪个线程
a线程执行完了才会跑main
网友评论